У меня есть страница, содержащая iframe
, в которой я ожидаю, что в пределах iframe пользователь перейдет на множество разных страниц - все они в том же домене, что и родительская.освобожден скрипт с hasOwnProperty
В окне верхнего уровня у меня есть постоянный объект, назовем его appData
. И в IFRAME У меня часто бывает такие строки
parent.appData[someProperty] = {a : 1, b : 2};
Я в курсе общей проблемы высвобождаемых ошибок сценария, и я понимаю, что я не должен пытаться вызывать любые произвольные методы такого объекта с происходящим документа может быть выгружены, но, конечно, hasOwnProperty
не должен быть таким способом, и я должен иметь возможность сказать, в какой-то следующей странице ребенка:
if (parent.appData[someProperty].hasOwnProperty('a'))
я не должен? И вот что странно: он работает так, как я ожидаю, в каждом браузере, который я тестировал, кроме MSIE 10. Я видел недавний ответ на IE9 "Can't execute code from freed script" when calling hasOwnProperty(), и действительно, используя in
, похоже, хорошо работает для моего случая, но мне интересно, имею ли я «обманывать» все время или если это ошибка в MSIE 10.
jsFiddle не обрабатывает iframe, поэтому я не уверен, как лучше всего продемонстрировать это с примером, извините.
Да, возможно, моя интуиция просто ошибается в этом, но я думал, что «просто данные» не подпадают под освобожденное ограничение скрипта, а «код» есть. И 'hasOwnProperty' на самом деле не является« частью »объекта, по этой мысли, это просто метод, который вы можете назвать. – Dan