Javascript 在IE中加载外部js
我想加载外部javascript文件,但由于同源策略,我无法使用AJAX请求,我有一个代码:Javascript 在IE中加载外部js,javascript,internet-explorer,Javascript,Internet Explorer,我想加载外部javascript文件,但由于同源策略,我无法使用AJAX请求,我有一个代码: <script type="text/javascript"> var head = document.getElementsByTagName('head')[0]; var script = document.createElement('script'); script.type = 'text/javascript'; script.s
<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>
var head=document.getElementsByTagName('head')[0];
var script=document.createElement('script');
script.type='text/javascript';
script.src='test.js';
head.appendChild(脚本);
这在任何地方都可以(Firefox、Chrome、Opera、IE9、IE6),但在IE8、IE7中不行。
我如何才能使它在IE8中工作?旧的
文档如何。编写(“”)
。另外,您不必附加到头
,您可以使用正文
添加到。旧的文档如何。写入(“”)
。另外,您不必附加到头您可以使用体到。尝试阅读关于:)尝试阅读关于:)我不确定您在IE中为什么会遇到问题,但以下内容在Firefox 4、IE6和IE9(即我可用的浏览器)中起作用:
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(脚本);
var interval=window.setInterval(函数(){
如果(类型($)!=“未定义”){
$(“成功了!”).appendTo(document.body);
窗口。清除间隔(间隔);
}
}, 100);
我不确定您在IE中遇到问题的原因,但在Firefox 4、IE6和IE9(即我可用的浏览器)中,以下各项都起到了作用:
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(脚本);
var interval=window.setInterval(函数(){
如果(类型($)!=“未定义”){
$(“成功了!”).appendTo(document.body);
窗口。清除间隔(间隔);
}
}, 100);
这取决于您在何处插入此代码参见此处的第二点这取决于您在何处插入此代码参见此处的第二点p.s.->以避免“未终止字符串文字”错误p.s.->为了避免“unterminated string literal”错误事实上,您的解决方案与我的问题中的相同,在IE7和IE8中不起作用。不,不是。它等待js加载,然后使用它。在我的测试中,它在ie6+中工作。是的,你是对的。问题是,我使用的是“IE Tester”,它似乎实现了IE7和IE8不正确,所以你的答案也可以,但我不能多次提交。所以,至少我投了一票。是的,我在ie tester上也有同样的问题。我通常只是假设,如果它在ie6和最新版本中工作,它将在两者之间工作。对于99%的情况,这可能是一个安全的假设。事实上,你的解决方案与我的问题中的相同,在IE7和IE8中不起作用。嗯,不,不是。它等待js加载,然后使用它。在我的测试中,它在ie6+中工作。是的,你是对的。问题是,我使用的是“IE Tester”,它似乎实现了IE7和IE8不正确,所以你的答案也可以,但我不能多次提交。所以,至少我投了一票。是的,我在ie tester上也有同样的问题。我通常只是假设,如果它在ie6和最新版本中工作,它将在两者之间工作。对于99%的病例来说,这可能是一个安全的假设。
<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>