2010-08-11 86 views
2

我想在新窗口中顯示圖片。爲此,我寫了打開新窗口的javascript函數。我打開一些固定大小的窗口(例如500 x 500)。但我想調整我的窗口大小的圖片。爲此我將事件附加到這個新創建的窗口。這裏只是IE瀏覽器的代碼,因爲FF和Chrome都可以運行。window.attachEvent在IE中不起作用

var win = null; 
function showPicture(url) { 
    win = window.open(url, "pic", "height=500,width=500"); 
    if (window.attachEvent) { 
     win.attachEvent("onload", correctWinSize); 
    } 
    // Not IE attach event code 
} 

function correctWinSize() { 
    // Here is resize code 
} 

問題是事件只是有時會觸發。我只需點擊調用showPicture()的超鏈接,窗口有時會調整大小,有時不會。你有什麼想法讓它工作嗎?

回答

1

您無法可靠地跨瀏覽器捕獲另一個窗口的load事件。您需要處理,在彈出的窗口中load事件並調用主窗口上的功能來告訴它它的加載:

在主窗口中

function popUpLoaded() { 
    alert("Loaded!); 
    // Do your resizing thing 
} 

在彈出

window.onload = function() { 
    // Check the opener still exists to prevent an error in the 
    // event it's been closed 
    if (!window.opener.closed) { 
     window.opener.popUpLoaded(); 
    } 
};