在一个js文件里远程调用jquery.js会在ie8下的一个奇怪问题

时间:2021-05-25

复制代码 代码如下:
function include(path){
var a=document.createElement("script");
a.type = "text/javascript";
a.src=path;
var head=document.getElementsByTagName("head")[0];
head.appendChild(a);
}
include("http://jqueryjs.googlecode.com/files/jquery-1.3.2.min.js")

这样的脚本你在ie8下调用,在ie8地址栏下按下回车后调用jquery的对像、方法什么的没有问题,但是刷新之后就有问题。就是刷新之后无论怎样你要在地址栏按一下回车。
在火狐下是没有问题的。附一个window.name的html脚本,大家可以测试一下:
复制代码 代码如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http:///files/jquery-1.3.2.min.js")
</script>
<script>
$(function(){
function sendData(url, callback){
if(!url || typeof url !== 'string'){
return;
}
url += (url.indexOf('?') > 0 ? '&' : '?') + 'windowname=true';
var frame = $('<iframe style="display:none;"></iframe>').appendTo("body");
var state = 0;
var clear = function(){
try{
frame[0].contentWindow.document.write('');//清空iframe的内容
frame[0].contentWindow.close();//避免iframe内存泄漏
frame.remove();//删除iframe
}catch(e){}
};
var getData = function(){
try{
var data = frame[0].contentWindow.name;
}catch(e){}
clear();
if(callback && typeof callback === 'function'){
callback(data);
}
};
frame.bind('load', function(){
if(state === 1){
getData();
} else if(state === 0){
state = 1;
frame[0].contentWindow.location = "none.html";
}
});
frame[0].src = url;
}
//应用:
var testurl = 'http://www.jb51.cn/test.html';
$("button").click(function(){
sendData( testurl ,function(result){
var fishDiv = $("#oldFish");
fishDiv.html( "你获取的数据是:"+result );
})
})
})
</script>
</head>
<body>
<button>远程加载数据</button>
<div id="oldFish"></div>
<p style="font-size:12px;">Dev By <a href="http://www.jb51.cn" >素材下载</a> & 桦</p>
<p style="font-size:12px;">参考:<a href="https://www.jb51.net" ></a></p>
</body>
</html>

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章