我想在新窗口中显示图片。为此,我编写了打开新窗口的 JavaScript 函数。我打开了一个固定大小的窗口(例如 500 x 500),但我想将窗口大小调整为图片大小。为此,我将事件附加到这个新创建的窗口。这里只是 IE 的代码,因为在 Firefox 和 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()
的超链接,窗口有时会调整大小,有时不会。您对如何让它发挥作用有任何想法吗?
最佳答案
您无法可靠地跨浏览器捕获另一个窗口的 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();
}
};
关于javascript - window.attachEvent 在 IE 中调整窗口大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3456596/