У меня есть всплывающее окно, которое позволяет открывающему окну опционально определять функцию обратного вызова, которая, если она будет определена, будет вызываться, когда пользователь завершит работу с всплывающим окном. Основываясь на совете, который я прочитал, я делаю это:
if (window.opener && (typeof window.opener.callbackFunction == 'function')) {
window.opener.callbackFunction()
}
Это прекрасно работает в Firefox - когда функция определена, typeof является «функцией», как и предполагалось. Однако в IE8 typeof вместо этого является «объектом». Функция обычно определяется в открывателе, например:
function callbackFunction() {
...
}
Кто-нибудь знает, почему typeof будет другим в IE8? Я также открыт для других предложений о том, как этого добиться. Я также попытался if (window.opener && window.opener.callbackFunction)
, но это привело к взрыву IE8, когда функция не была определена.