2

我有 HTML 弹出窗口,我想在打开带有规范的窗口后添加文本。功能:

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);
4

2 回答 2

0

索引.php

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

私人的.php

 $(document).read(function() {
     var text_to_insert = window.opener.callback();
 })
于 2012-10-20T22:40:03.340 回答
0

你可以试试这个(在 chrome、FF、IE 中测试但不了解 Opera)

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事件。

演示

于 2012-10-20T22:55:34.853 回答