【问题标题】:Loading external js in IE在 IE 中加载外部 js
【发布时间】:2011-05-13 07:26:56
【问题描述】:

我想加载外部 javascript 文件,但由于同源策略,我无法使用 AJAX 请求,并且我有一个代码:

<script type="text/javascript">
    var head = document.getElementsByTagName('head')[0];
    var script = document.createElement('script');
        script.type = 'text/javascript';
        script.src = 'test.js';
    head.appendChild(script);
</script>

在任何地方都可以(Firefox、Chrome、Opera、IE9、IE6),但在 IE8、IE7 中不行。
我怎样才能让它在 IE8 中工作?

【问题讨论】:

标签: javascript internet-explorer


【解决方案1】:

旧的document.write('&lt;script language="javascript" src="test.js"&gt;&lt;\/script&gt;') 怎么样。此外,您不必附加到head,您可以使用body

【讨论】:

  • 附注 -> 避免“未终止的字符串文字”错误
【解决方案2】:

尝试阅读JsonP :)

【讨论】:

    【解决方案3】:

    我不确定你为什么在 IE 中遇到问题,但以下在 Firefox 4、IE6 和 IE9(即我可用的浏览器)中有效:

    <html>
    <head>
    
    </head>
    <body>
        <script type="text/javascript">
            var head = document.getElementsByTagName('head')[0];
            var script = document.createElement('script');
                script.type = 'text/javascript';
                script.src = 'https://ajax.googleapis.com/ajax/libs/jquery/1.5.0/jquery.min.js';
            head.appendChild(script);
    
            var interval = window.setInterval(function() {
                if (typeof($) !== "undefined") {
                    $("<p>it worked!</p>").appendTo(document.body);
                    window.clearInterval(interval);
                }
            }, 100);
        </script>
    
    </body>
    </html>
    

    【讨论】:

    • 其实你的解决方案和我的问题是一样的,在IE7和IE8中都行不通
    • 呃,不是的。它等到 js 被加载然后使用它。在我的测试中,它适用于 ie6+。
    • 是的,你是对的。问题是我使用的是“IE Tester”,它似乎实现了 IE7 和 IE8 不正确,所以你的回答也可以,但我不能多次提交。所以至少我投了赞成票。
    • 是的,我在 ie tester 上也遇到过同样的问题。我通常只是假设如果它适用于 ie6 和最新版本,它将适用于中间版本。对于 99% 的情况,这可能是一个安全的假设。
    猜你喜欢
    • 2011-04-21
    • 1970-01-01
    • 1970-01-01
    • 2015-05-16
    • 2013-03-12
    • 1970-01-01
    • 2013-12-13
    • 2010-09-11
    • 2016-03-16
    相关资源
    最近更新 更多