我想在新窗口中显示图片。为此,我编写了打开新窗口的javascript函数。我打开一些固定大小的窗口(例如500 x 500)。但我想调整窗口大小以适应图片大小。为此我将事件附加到这个新创建的窗口。这里只是IE的代码,因为在FF和Chrome中都可以使用。
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()的超链接,窗口有时会调整大小,有时不会。你有什么想法让它有效吗?
答案 0 :(得分: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();
}
};