我有一个弹出窗口,它允许打开器窗口选择性地定义一个回调函数,如果定义了回调函数,将在用户完成弹出窗口时调用。根据我读过的建议,我正在这样做:
if (window.opener && (typeof window.opener.callbackFunction == 'function')) {
window.opener.callbackFunction()
}
这在 Firefox 中运行良好 - 定义函数时,typeof 是预期的“函数”。但是,在 IE8 中,typeof 改为“object”。该函数通常在 opener 中定义,如下所示:
function callbackFunction() {
...
}
有人知道为什么 typeof 在 IE8 中会有所不同吗?我也乐于接受有关如何实现此目标的其他建议。我还尝试了 if (window.opener && window.opener.callbackFunction)
但这导致 IE8 在未定义函数时崩溃。
最佳答案
你可以试试
if ( window.opener && (typeof window.opener.callbackFunction != 'undefined') {
window.opener.callbackFunction();
}
我目前没有 IE,所以我无法测试它,但相信它会工作。
关于javascript - 在 IE8 的 opener 窗口中检查是否定义了一个函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5651615/