window.onload弹出窗口中的DOM加载,浏览器兼容性

时间:2012-10-20 22:07:18

标签: javascript jquery html popup

我有HTML弹出窗口,我希望在打开带有spec的窗口后添加文本。功能:

var win = window.open('private.php', data.sender_id , 'width=300,height=400');                      
win.window.onload = function() {
         //function for add text
         //chrome and firefox fire, IE and Opera not
};

这与Chrome和Firefox完美配合,但Opera和IE9无法正常工作。请告诉我 用IE和Opera做到这一点的最好方法。 我试着用:

$(document).ready(function(){
   //function for add text
});

但同样的事情。

我找到了解决方案,但我不知道有更好的解决方案,然后setTimeout ???

而是使用onload事件:

setTimeout(function(){
 //add text
},200);

2 个答案:

答案 0 :(得分:0)

的index.php

function callback() {
   // ...
   return xxx;
}

private.php

 $(document).read(function() {
     var text_to_insert = window.opener.callback();
 })

答案 1 :(得分:0)

你可以尝试这个(在chrome,FF,IE测试,但不知道歌剧)

var win = window.open('private.php', data.sender_id , 'width=300,height=400');
win[win.addEventListener ? 'addEventListener' : 'attachEvent']((win.attachEvent ? 'on' : '') + 'load', myFunction, false);
function myFunction(){
    win.focus();
    win.document.write('loaded...');
}​

如果有效,您也可以尝试DOMContentLoaded事件。

DEMO