IE9 окно iframe удалено после того, как не сможет выполнить код из освобожденного скрипта? - PullRequest
2 голосов
/ 05 декабря 2011

В моем приложении я создал iframe в моем лайтбоксе, когда я открываю лайтбокс после того, как он вызовет функцию родительского окна, и закрываю лайтбокс, в родительском окне функция создаст и обновит некоторые DOM, а затем, когда я вернусь назад родительское окно, в котором я пытаюсь получить доступ к этим DOM, вызывает исключение «script5011: не удается выполнить код из освобожденного сценария».

Я вызываю родительскую оконную функцию в iframe, как этот window.parent.myFunc (arg1, arg2 ....), оно получит исключение, я думаю, что это новая функция IE 9, измененная, потому что я тестировал в IE 6, 7, 8 и другие браузеры работают нормально все, я пока не могу найти правильное решение для IE 9, я надеюсь получить ответ здесь. есть идеи?

1 Ответ

1 голос
/ 07 июля 2012

Причиной этой проблемы является то, что IE9 удаляет ссылку на объект родительского окна, когда впоследствии изменяется URL-адрес фрейма, и это делается для повышения безопасности. Решением для этого является установка функций в родительском окне, которые могут изменять (установщики и получатели) объекты данных родительского окна. Вы можете передавать объекты в функцию родительского окна после его сериализации в строку. Лучший способ вызвать функцию родительского фрейма - вызвать следующий код в дочернем фрейме.

window.parent.eval("resetDataObject()");

и в родительской рамке напишите что-то вроде:

var myDataObject = [];
function resetDataObject()
{
    myDataObject = [];
}

Проверить это сообщение http://www.tejzpr.com/2014/10/codefix-script5011-cant-execute-code.html

...