Выполнение Javascript в отдельном фрейме - PullRequest
2 голосов
/ 08 декабря 2011

Internet Explorer 6/7/8.

Я использую вызовы eval (), чтобы обеспечить выполнение кода в контексте определенных фреймов многокадрового веб-сайта.

Ситуация, с которой я столкнулся, заключается в том, что я в основном передаю полное имя метода в FrameA в FrameB.Затем я хочу, чтобы FrameB выполнил указанный метод внутри FrameA - но из контекста FrameA.Это очень важно из-за ограничений внутри IE, которые в противном случае могут привести к ошибкам «освобожденного скрипта».См .: Невозможно выполнить код из освобожденного скрипта

FrameB использует eval для первого получения целевого объекта frame, а затем вызывает eval для результирующего объекта для выполнения метода, который находится внутриэтот кадр.Поэтому рассмотрим следующее, выполняющееся из FrameB:

eval("top.FrameA").eval("SomeMethod(1,2);");

Первый eval возвращает объект окна, но вызов второго eval всегда приводит к ошибке «ожидаемый объект».

Интересноприведенный выше код работает с внутри FrameA, но на самом деле он выполняется внутри FrameB с помощью следующего кода:

top.FrameB.eval("eval('top.FrameA').eval('SomeMethod(1,2);');");

Таким образом, проблема связана с вложениемeval высказывания.

Что мне здесь не хватает?

1 Ответ

0 голосов
/ 08 декабря 2011

Я не уверен на 100%, если я понимаю ваш вопрос, но посмотрите последний раздел на этой странице:

http://www.infimum.dk/HTML/JSwindows.html

Надеюсь, это поможет.

...