JS异步脚本无法执行
JS Asynchron script faild to execute
我想包含一个带有javascript的adserver js脚本,并异步加载它。但每次尝试都会以警告结束,并且脚本不会执行。
我收到以下错误消息:"无法对"文档"执行"写入":除非显式打开,否则无法从异步加载的外部脚本写入文档。"
我尝试过以下变体:
var script = document.createElement('script');
script.type = 'text/javascript';
script.src = "http://example.com/test.js";
document.body.appendChild(script);
或者我使用了HTML脚本属性async
<script src="http://example.com/test.js" async></script>
但是什么都没用,因为外部脚本使用document.write。有其他方法可以包含这样的脚本吗?
如何"显式打开"页面("除非显式打开它"-请参阅警告)?
一种方法是临时覆盖document.write
,直到执行脚本,然后替换原始功能。
var tempDocWrite = document.write;
document.write = function(el){
var div = document.createElement('div');
div.innerHTML = el;
document.body.appendChild(div)
}
var script = document.createElement('script');
script.onload = function(){
document.write = tempDocWrite
}
script.type = 'text/javascript';
script.src = "http://example.com/test.js";
document.body.appendChild(script);
注意:尚未测试上述代码
相关文章:
- 如果返回的数据是javascript,$.ajax会自动执行脚本吗
- 如果条件匹配,则停止执行脚本
- 加载服务器端渲染的React组件后执行脚本
- 量角器使用ElementArrayFinder执行脚本怪异
- 在selenium python中执行脚本
- 仅当脚本在视口中时执行脚本
- Chrome扩展:加载窗口后执行脚本
- FireFox扩展对TinyMCE编辑器执行脚本注入
- HTML表单-按'时执行脚本;输入',无需提交
- 当超出范围时,延迟执行脚本Jquery(或SetTimeOut)BUT
- 在执行脚本之前,请查看对象是否未定义
- 如何在整个网页加载后执行脚本
- 多次执行脚本的 jQuery
- 从另一个文件执行脚本
- 从单独的.php文件中执行<脚本>
- 如何防止执行脚本但在 DOM 中显示它
- 在 Mac 上的 Firebug 中继续执行脚本的快捷方式是什么?
- 文档.写入脚本内部不执行脚本
- 在页面加载之前在 ajax 请求的页面上执行脚本
- 如何对包含在父 html 中的子 html 文件执行脚本