如果条件加载外部JavaScript脚本

时间:2016-08-27 11:41:40

标签: javascript jquery html

我有以下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元素内加载脚本?

1 个答案:

答案 0 :(得分:2)

由于您加载的脚本使用document.write(),因此您必须使用document.writeif语句中添加脚本。

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()?