<HTML>
<HEAD>
<script>
function fun(np){
var opener = window.open(np);
opener.document.getElementsByTagName('div')[0].style.border="solid 10px red";
return false;
}
</script>
</HEAD> <BODY>
<a href="###" onclick="fun('e.html')">open</a>
</BODY>
</HTML>这段代码在ie下能正常实现在firefox就不行,可是如果我改成这样就行了<HTML>
<HEAD>
<script>
function fun(np){
var opener = window.open(np);
alert(opener);
opener.document.getElementsByTagName('div')[0].style.border="solid 10px red";
return false;
}
</script>
</HEAD> <BODY>
<a href="###" onclick="fun('e.html')">open</a>
</BODY>
</HTML>这是为什么,我只想实现代码,不想alert弹出,怎么办才能在firefox下实现和ie一样的效果
function waitThenDoIt(){
try{
if (window.document.readyState){//IE
if (window.document.readyState==’complete’){
doIt();
}else
setTimeout("waitThenDoIt()",10);
} else {//Firefox
window.addEventListener("load",function(){doIt();},false);
}
} catch (ex) {
}
}
function doIt(){
//…
}
<HEAD>
<script>
var opener;
function fun(np){
opener = window.open(np);
setTimeout("s()",1000)
return false;
}
function s(){
opener.document.getElementsByTagName('div')[0].style.border="solid 10px red"; } </script>
</HEAD> <BODY>
<a href="###" onclick="fun('e.html')">open</a>
</BODY>
</HTML>
可以通过document.readyState来监听
<script type="text/javascript">
var opener;
function fun(np){
opener = window.open(np);
test();
return false;
}
function test() {
if(opener.document.readyState == "complete") {
opener.document.getElementsByTagName('div')[0].style.border="solid 10px red";
clearTimeout();
} else {
setTimeout("test()",1000);
}
}
</script>我没有具体测试过,大概就是这个意思~
应该直接可以
window.addEventListener("load",doIt,false);