2011-02-22 2 views
1

Мне интересно, где интерпретация сценария начинается в документе с iframe, который содержит другой документ, с "<header><script>" или, возможно, "<body><script>". Мне просто нужно убедиться, что выполнение происходит во внешнем документе перед документом iframe, но кажется, что он случайный, так ли это?Точки доступа к выполнению Javascript в документе

Кстати, как насчет порядка интерпретации ссылочных javascripts? От этого зависит «где» в документе, на который я ссылаюсь?

ответ

2

Я просто действительно нужно, чтобы убедиться, что выполнение происходит в «космическом» документ до IFrame документа

Чтобы сделать это с 100% уверенностью, вы должны создать IFRAME в наружной document DOMReady (например, с jQuery's .ready()). Если вы встроили его непосредственно в документ, на самом деле нет гарантии того, когда скрипты будут выполняться.

Что относительно порядка интерпретации ссылочных javascripts? От этого зависит «где» в документе, на который я ссылаюсь?

Да, блоки сценариев выполняются в том порядке, в котором они находятся на странице. Вот отличный ответ на вопрос: Load and execution sequence of a web page?

+0

И могу ли я просто указать функции родительского окна изнутри iframe и быть в безопасности? parent.getWordCount(). Если выполнение запускается в iframe

1

Это действительно зависит от того, как вы впрыскивать Javascript (в родительском документе и) и где Вы вводите его.

Если, например, вы используете динамической вставки сценария в вашем родительском документе, но блокирование<script> тегов в коде Iframe, сценарий IFrame, вероятно, получите выполняются первым.

Ловушка может быть, если вы положили теги <script> внизу вашего родительского документа, но где-то выше.

Таким образом, в общем случае, если вы используете блокировки <script> тегов, прежде чем вы на самом деле создать в вашем родительском документе, это «должен» выполнить первый. Но опять же передний край браузера попытается загрузить эти сценарии в параллельном режиме, что также может привести к неправильному поведению там.

Динамически следует создавать в окне окна DOMContentLoaded или onload в вашем родительском документе.

+0

Что я уверен в том, что блокирование тегов