在360兼容模式下appendChild()不可用

紫色田园 2017-07-25 08:49:50
在做网站时,需要实现一个功能,动态在div中添加一段js代码并运行,js代码如下:
<script type="text/javascript" src="http://1.gzcdns.com/kfxlugbhhimhnlou.js"></script>
最开始使用.append()虽然可以实现将js代码添加到指定的div中,但是js代码并没有运行。
多交测试后发现appendChild可以实现功能,示例代码如下:
var _ads_left_top = document.getElementById('ads_left_top');
var s_ads_left_top = document.createElement( 'script' );
s_ads_left_top.type = 'text/javascript';
s_ads_left_top.src = 'http://1.gzcdns.com/bwoclxtlszdec.js';
_ads_left_top.appendChild(s_ads_left_top);

可后来发现在360兼容模式下时,appendChild()没反应。
指求各位大侠指点,访如何做?
...全文
277 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
紫色田园 2017-08-03
  • 打赏
  • 举报
回复
找到解决办法了,不用append, 示例:http://www.6gdown.com/newspage/20170802_77721.html -------------------------------------------------------------------------------------------- 网页广告位置用 <div id="ads_right_1"><span id="span_right_1" class="jbTestPos"></span></div> <div id="ads_right_2"><span id="span_right_2" class="jbTestPos"></span></div> <script type="text/javascript" src="/default/js/ads_news.js"></script> <script>jbLoader();</script><script class="closetag">jbLoader(true);</script> <script>jbLoader();</script><script class="closetag">jbLoader(true);</script> 采用ads_news.js内容的写法就OK了。 jbMap = window.jbMap || {}; function jbViaJs(locationId) { var _f = undefined; var _fconv = 'jbMap[\"' + locationId + '\"]'; try { _f = eval(_fconv); if (_f != undefined) { _f(); } } catch(e) {} } function jbLoader(closetag) { var jbTest = null, jbTestPos = document.getElementsByTagName("span"); for (var i = 0; i < jbTestPos.length; i++) { if (jbTestPos[i].className == "jbTestPos") { jbTest = jbTestPos[i]; break; } } if (jbTest == null) return; if (!closetag) { document.write("<span id=jbTestPos_" + jbTest.id + " style=display:none>"); jbViaJs(jbTest.id); return; } document.write("</span>"); //alert("jbTestPos_" + jbTest.id); var real = document.getElementById("jbTestPos_" + jbTest.id); for (var i = 0; i < real.childNodes.length; i++) { var node = real.childNodes[i]; if (node.tagName == "SCRIPT" && /closetag/.test(node.className)) continue; jbTest.parentNode.insertBefore(node, jbTest); i--; } jbTest.parentNode.removeChild(jbTest); real.parentNode.removeChild(real); }
紫色田园 2017-07-25
  • 打赏
  • 举报
回复
谢谢,可是,不能改成shtml哦。网站已有几万篇内容了。
Go 旅城通票 2017-07-25
  • 打赏
  • 举报
回复
引用 9 楼 lovetxp 的回复:
引用 7 楼 u013116426 的回复:
[quote=引用 6 楼 lovetxp 的回复:] [quote=引用 4 楼 u013116426 的回复:] [quote=引用 2 楼 lovetxp 的回复:] [quote=引用 1 楼 u013116426 的回复:]
var head= document.getElementsByTagName('head')[0]; 
var script= document.createElement('script'); 
script.type= 'text/javascript'; 
script.src= '../js/jquery-1.9.1.min.js'; 
head.appendChild(script); 
试过没毛病
-----是兼容模式吗?
是的。兼容模式就是切换成了ie内核。[/quote] -----------为何我这兼容模式下不行呢。[/quote] 你这个引用的这个js文件里的代码好像有问题。有语法错误![/quote] --------可这代码是百度提供给我的,
引用 8 楼 showbo 的回复:
引用 5 楼 lovetxp 的回复:
[quote=引用 3 楼 showbo 的回复:] 兼容模式不就是ie咯(应该是ie8-的内核,和系统安装的ie版本不一定一样),appenChild肯定支持的,没效果就是你那个js有问题,不支持ie8-什么的
----这个js是百度广告的js代码,我直接将
<script type="text/javascript" src="http://1.gzcdns.com/kfxlugbhhimhnlou.js"></script>
放在div里面是OK的,为了方便灵活引用将这段代码放在一个js文件,由js来按制的。
广告最好不要append,append的js不会挂起后续代码和html的执行解析,有些浏览器如ie8-那种如果js使用了document.write输出其他内容是不会定位到script所在的容器里面的[/quote] ----不用append好像没其它好的办法了,网站的网页是后台生成的静态html,我现在要加百度广告,不能把广告代码写死在页面里面,因为这样做后期广告代码维护会很麻烦,我的想法是在尽理不更新网页的基础上灵活维护广告代码,想上就上想下就下想更就理新,所以想在网页加入一个js,通过js来为网页动态添加广告。[/quote] 改为shtml后缀,可以直接include文件,纯html你要append就得放弃ie8-那种浏览器了(包括360的兼容模式,因为内核不一定是最新的IE浏览器)。
紫色田园 2017-07-25
  • 打赏
  • 举报
回复
引用 7 楼 u013116426 的回复:
引用 6 楼 lovetxp 的回复:
[quote=引用 4 楼 u013116426 的回复:] [quote=引用 2 楼 lovetxp 的回复:] [quote=引用 1 楼 u013116426 的回复:]
var head= document.getElementsByTagName('head')[0]; 
var script= document.createElement('script'); 
script.type= 'text/javascript'; 
script.src= '../js/jquery-1.9.1.min.js'; 
head.appendChild(script); 
试过没毛病
-----是兼容模式吗?
是的。兼容模式就是切换成了ie内核。[/quote] -----------为何我这兼容模式下不行呢。[/quote] 你这个引用的这个js文件里的代码好像有问题。有语法错误![/quote] --------可这代码是百度提供给我的,
引用 8 楼 showbo 的回复:
引用 5 楼 lovetxp 的回复:
[quote=引用 3 楼 showbo 的回复:] 兼容模式不就是ie咯(应该是ie8-的内核,和系统安装的ie版本不一定一样),appenChild肯定支持的,没效果就是你那个js有问题,不支持ie8-什么的
----这个js是百度广告的js代码,我直接将
<script type="text/javascript" src="http://1.gzcdns.com/kfxlugbhhimhnlou.js"></script>
放在div里面是OK的,为了方便灵活引用将这段代码放在一个js文件,由js来按制的。
广告最好不要append,append的js不会挂起后续代码和html的执行解析,有些浏览器如ie8-那种如果js使用了document.write输出其他内容是不会定位到script所在的容器里面的[/quote] ----不用append好像没其它好的办法了,网站的网页是后台生成的静态html,我现在要加百度广告,不能把广告代码写死在页面里面,因为这样做后期广告代码维护会很麻烦,我的想法是在尽理不更新网页的基础上灵活维护广告代码,想上就上想下就下想更就理新,所以想在网页加入一个js,通过js来为网页动态添加广告。
Go 旅城通票 2017-07-25
  • 打赏
  • 举报
回复
引用 5 楼 lovetxp 的回复:
引用 3 楼 showbo 的回复:
兼容模式不就是ie咯(应该是ie8-的内核,和系统安装的ie版本不一定一样),appenChild肯定支持的,没效果就是你那个js有问题,不支持ie8-什么的
----这个js是百度广告的js代码,我直接将
<script type="text/javascript" src="http://1.gzcdns.com/kfxlugbhhimhnlou.js"></script>
放在div里面是OK的,为了方便灵活引用将这段代码放在一个js文件,由js来按制的。

广告最好不要append,append的js不会挂起后续代码和html的执行解析,有些浏览器如ie8-那种如果js使用了document.write输出其他内容是不会定位到script所在的容器里面的
___紫菜 2017-07-25
  • 打赏
  • 举报
回复
引用 6 楼 lovetxp 的回复:
[quote=引用 4 楼 u013116426 的回复:] [quote=引用 2 楼 lovetxp 的回复:] [quote=引用 1 楼 u013116426 的回复:]
var head= document.getElementsByTagName('head')[0]; 
var script= document.createElement('script'); 
script.type= 'text/javascript'; 
script.src= '../js/jquery-1.9.1.min.js'; 
head.appendChild(script); 
试过没毛病
-----是兼容模式吗?[/quote] 是的。兼容模式就是切换成了ie内核。[/quote] -----------为何我这兼容模式下不行呢。[/quote] 你这个引用的这个js文件里的代码好像有问题。有语法错误!
紫色田园 2017-07-25
  • 打赏
  • 举报
回复
引用 4 楼 u013116426 的回复:
[quote=引用 2 楼 lovetxp 的回复:] [quote=引用 1 楼 u013116426 的回复:]
var head= document.getElementsByTagName('head')[0]; 
var script= document.createElement('script'); 
script.type= 'text/javascript'; 
script.src= '../js/jquery-1.9.1.min.js'; 
head.appendChild(script); 
试过没毛病
-----是兼容模式吗?[/quote] 是的。兼容模式就是切换成了ie内核。[/quote] -----------为何我这兼容模式下不行呢。
紫色田园 2017-07-25
  • 打赏
  • 举报
回复
引用 3 楼 showbo 的回复:
兼容模式不就是ie咯(应该是ie8-的内核,和系统安装的ie版本不一定一样),appenChild肯定支持的,没效果就是你那个js有问题,不支持ie8-什么的
----这个js是百度广告的js代码,我直接将
<script type="text/javascript" src="http://1.gzcdns.com/kfxlugbhhimhnlou.js"></script>
放在div里面是OK的,为了方便灵活引用将这段代码放在一个js文件,由js来按制的。
___紫菜 2017-07-25
  • 打赏
  • 举报
回复
引用 2 楼 lovetxp 的回复:
[quote=引用 1 楼 u013116426 的回复:]
var head= document.getElementsByTagName('head')[0]; 
var script= document.createElement('script'); 
script.type= 'text/javascript'; 
script.src= '../js/jquery-1.9.1.min.js'; 
head.appendChild(script); 
试过没毛病
-----是兼容模式吗?[/quote] 是的。兼容模式就是切换成了ie内核。
Go 旅城通票 2017-07-25
  • 打赏
  • 举报
回复
兼容模式不就是ie咯(应该是ie8-的内核,和系统安装的ie版本不一定一样),appenChild肯定支持的,没效果就是你那个js有问题,不支持ie8-什么的
紫色田园 2017-07-25
  • 打赏
  • 举报
回复
引用 1 楼 u013116426 的回复:
var head= document.getElementsByTagName('head')[0]; 
var script= document.createElement('script'); 
script.type= 'text/javascript'; 
script.src= '../js/jquery-1.9.1.min.js'; 
head.appendChild(script); 
试过没毛病
-----是兼容模式吗?
___紫菜 2017-07-25
  • 打赏
  • 举报
回复
var head= document.getElementsByTagName('head')[0]; 
var script= document.createElement('script'); 
script.type= 'text/javascript'; 
script.src= '../js/jquery-1.9.1.min.js'; 
head.appendChild(script); 
试过没毛病

87,910

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧