前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >用JavaScript动态输出的JS脚本不能执行

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

作者头像
小李刀刀
发布2018-03-02 15:25:54
3.3K0
发布2018-03-02 15:25:54
举报
文章被收录于专栏:PHP 开发PHP 开发

随着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将不能执行。具体看下面的代码:

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

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

把代码修改如下:

代码语言:javascript
复制
  加载中...

    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脚本调用代码已经被输出到页面,但是没有被执行。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2006-04-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档