Кадры, сценарии и порядок загрузки - PullRequest
4 голосов
/ 23 марта 2009

Если у меня есть документ с набором фреймов и некоторым javascript, определенным в теге head, то есть что-то вроде этого:

<html>
 <head>
  <script>
     function foo() {}
  </script>   
 </head>
 <frameset>
    <frame src="A.html">
 </frameset>     
</html>

Я уже предполагаю, что фрейм (A.html) запускает свой обработчик события onLoad раньше, чем его родительский. Я почти уверен, что это безопасное предположение. Однако безопасно ли предположить, что контекст сценария A.html может безопасно получить доступ ко всему коду сценария, определенному в заголовке родительского окна?

Какие предположения я могу сделать?

Ответы [ 2 ]

1 голос
/ 25 марта 2009

Сценарий фрейма сможет получить доступ к своему родительскому пространству JS через ссылку parent. (Но только если два документа находятся на одном хосте - как в вашем урезанном примере).

Я бы не стал полагаться на запуск onLoad родителя после A.html , хотя, как упоминал Фил, сценарий будет обрабатываться первым - это потому, что оценка встроенного сценария операция блокировки.

1 голос
/ 23 марта 2009

Согласно этой странице , вы можете безопасно обращаться к сценарию в parent , который является объектом, ссылающимся на родительский документ frameset фрейма.

Из небольшого локального теста событие onload родительского элемента , похоже, не срабатывает , но его скрипт-тег, кажется, все обработал до загрузки дочерних кадров.

Фреймы в эти дни недовольны, поэтому убедитесь, что это правильный подход.

...