用JavaScript动态输出的JS脚本不能执行

随着Ajax的越来越多地运用,HTML的内容又开始由“所见即所得”开始向“所见未必所得”发展了。这就是动态改变网页内容的魅力所在吧。 在公司产品动易2006版整合接口的开发过程中,需要在客户端页面上输出一段调用远程接口写cookies的代码,最早的时候我是把调用url通过script的方式输出。在ASP输出HTML的时候,调试通过。

动易2006的前台登陆表单已经采用了Ajax技术,页面上所看到的登陆表单并非直接由HTML代码在页面中写成,而是在页面加载以后,通过JS,通过Ajax,向服务器端的asp程序查询用户登录状态以后,再动态输出到页面的。

一开始我通过JS,动态生成调用script的HTML代码以后,输出到页面,跟其它的HTML代码一样。结果出现了通行登陆不能同步的问题。用alert调试发现代码已经正确生成,显然用innerHTML输出到页面以后,是没有问题的。但是为什么没有登陆呢? 为这个问题,折磨了我一晚上。天亮的时候跟动网公司的迷城浪子聊到这个问题,老迷没看我的脚本,只是听我讲了一遍,回答我说“JS输出的JS脚本不能被执行的吧?”

难道真是这个问题?我把通过script调用改成通过img调用,还把图片大小设置成100*100,果然在页面上显示了,同步登陆也成功了。

后来我写了一个段测试脚本,果然是js输出的js将不能执行。具体看下面的代码:

  document.write("<script src=\"http://s33.cnzz.com/stat.php?id=109006&web_id=108995&show=pic\" language=\"JavaScript\" charset=\"gb2312\"><\/script>");

在上面的例子中,可以看到页面执行了远程的js脚本,输出统计图标

把代码修改如下:

  加载中...

    var newStr = "<script src=\"http://s33.cnzz.com/stat.php?id=109006&web_id=108995&show=pic\" language=\"JavaScript\" charset=\"gb2312\"><\/script>";
    document.getElementById("div").innerHTML = newStr;

可以看到“加载中...”字样已经被下面的JS代码动态输出的代码替换了,但是并没有显示统计图标,说明script脚本调用代码已经被输出到页面,但是没有被执行。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏前端杂谈

广告等第三方应用嵌入到web页面方案 之 使用iframe嵌入

58870
来自专栏Jerry的SAP技术分享

推荐一个可以把网页背景色调成护眼色的Chrome扩展应用

我在网上逛了一圈,找到一个比较实用的Chrome扩展应用,可以一键实现将Chrome打开网页的背景色修改成护眼的豆沙绿,这样在网上浏览网页,眼睛舒服多了。

13200
来自专栏DeveWork

WordPress 注册页面显示自定义提示信息

如果你的WordPress 网站是多用户网站,那么在提供给用户注册的时候,可以自定义一些提示信息,比如说网站协议、版权声明之类的。把下面的代码放到主题的func...

22170
来自专栏做全栈攻城狮

安卓开发教程-实战网页源代码查看器,安卓程序员必备

本系列教程致力于可以快速的进行学习安卓开发,按照项目式的方法,通常一篇文章会做一个小程序。提高学习的兴趣。

30430
来自专栏zhangdd.com

nginx解决WordPress修改固定链接后404错误的方法

由于wordpress博客站点刚开始使用的时候忘记更改固定链接,使用的是默认的朴素固定连接   https://www.xxx.com/?p=123 ,这样显示...

16220
来自专栏linux驱动个人学习

Linux 内核死锁

死锁是指多个进程(线程)因为长久等待已被其他进程占有的的资源而陷入阻塞的一种状态。当等待的资源一直得不到释放,死锁会一直持续下去。死锁一旦发生,程序本身是解决不...

39350
来自专栏Jerry的SAP技术分享

推荐一个非常好用的Chrome扩展应用,用于美化Json字符串

我在网上逛了一圈,找到一个比较实用的Chrome扩展应用,可以一键实现将Chrome打开网页的背景色修改成护眼的豆沙绿,这样在网上浏览网页,眼睛舒服多了。

17700
来自专栏程序员互动联盟

【专业技术】Windows编程技巧小结

我们在编写程序的时候,常常会需要一些线程的delay函数。这个问题说简单也简单,说复杂也复杂。比如很多人读知道delay直接用Windows的API函数Slee...

37650
来自专栏极乐技术社区

微信小程序入门《一》: 简 介、文本、事件、样式

小程序简介 原生APP和Web APP谁是未来的主流这个命题争了很多年,而原生APP最大的优势也就是对于系统控件接口和框架的调用能力比Web APP不知道高到哪...

29290
来自专栏Coco的专栏

【前端工具】Chrome 扩展程序的开发与发布 -- 手把手教你开发扩展程序

17330

扫码关注云+社区

领取腾讯云代金券