为什么window.onload不会在IE中激活

时间:2017-02-21 09:14:57

标签: javascript jquery internet-explorer onload

我有一些代码可以打开一个弹出窗口,然后通过弹出页面上的某个元素调整它的大小。以下代码在Chrome和Firefox中正常工作,但不适用于IE。

var newWin ;
    function openWindow(id) {
        newWin = window.open(url,config,setting);
        newWin.onload= function () {                     
              newWin.resizeTo(newWin.document.getElementById("certainID").offsetWidth,100);
        };

在IE10中会出现一个弹出窗口,但 window.load 事件永远不会触发。 我也尝试 newWin。$(document).ready ,但似乎无效。

有什么建议吗?

3 个答案:

答案 0 :(得分:1)

最后我通过 setTimeout 来解决这个问题,以检查弹出窗口中的元素是否生成良好,然后调整弹出窗口的大小



MERGE INTO Table2 tar
USING
(
     SELECT MIN(T1.ID) AS ID, T2.item AS item
     Table2 T2 
     LEFT JOIN
     Table1 T1
     ON (T2.item LIKE '%'||T1.item||'%')
     GROUP BY T2.item
 ) src
 ON (tar.item = src.item)

WHEN MATCHED THEN UPDATE
SET tar.id = src.id;




答案 1 :(得分:1)

如果使用setTimeout,则可能会在窗口尚未完成加载时弹出窗口来调整大小。我认为最好的解决方案是使用setInterval并检查document.readyState ==='complete“ =>何时调用clearInterval()并运行resize

答案 2 :(得分:0)

这是IE中的一个老问题。 最好的解决方案之一是添加new

通常我们写

window.onload=function() { alert('hello');};

将其替换为

window.onload=new function() { alert('hello');};