我有以下DIV:
<div id="top-ad"></div>
如果浏览器大小高于728,我想加载一个外部广告javascript脚本。所以,我需要这样的东西:
<div id="top-ad">
<script>
if(window.innerWidth >= 728) {
<script src="//go.*****.com/?id=****"></script>
}
</script>
</div>
当然上面的工作没有成功。我尝试使用Jquery异步加载脚本,如下所示:
<div id="top-ad">
<script>
if(window.innerWidth >= 728) {
$.getScript("//go.*****.com/?id=****");
}
</script>
</div>
我尝试了上述方法,但收到以下错误:
无法执行&#39;写&#39; on&#39; Document&#39;:除非明确打开,否则无法从异步加载的外部脚本写入文档。
我无法访问已加载脚本中的DOM元素,它们实际上是动态的,我不允许更改它们。有没有办法根据if条件在div
元素内加载脚本?
答案 0 :(得分:2)
由于您加载的脚本使用document.write()
,因此您必须使用document.write
在if
语句中添加脚本。
if (window.innerWidth >= 728) {
document.write('<script src="//go.*****.com/?id=****"></sc' + 'ript>');
}
请注意,您必须拆分</script>
,否则它将结束运行您脚本的<script>
标记。见Why split the <script> tag when writing it with document.write()?