JavaScript с помощью iframe? - PullRequest
0 голосов
/ 04 июля 2011

У меня есть два iframe на одной странице, теперь первый iframe - это URL-адрес вне хоста, например, www.google.com, а второй в local означает contact.html, теперь оба имеют одинаковую функцию JavaScript, например, hello function(), который будет вызываться первым?

Ответы [ 4 ]

0 голосов
/ 04 июля 2011

зависит.

Например,

<script type='text/javascript'>
  hello();
</script>
<iframe src='www.google.com'></iframe>

Функция приветствия вашей страницы определенно вызывается первой.

<iframe src='www.google.com'></iframe>
  .... more stuff
<script type='text/javascript'>
  hello();
</script>

В этом случае вы не можете предсказать, так каксодержимое iframe загружается асинхронно и может срабатывать или не срабатывать перед вызовом hello на вашей странице.Однако если вы планируете получить доступ к значениям, возвращаемым этими функциями через iframe, вы можете столкнуться с ограничениями безопасности браузера.В любом случае, напишите какой-нибудь код.

0 голосов
/ 04 июля 2011

1) другая страница из того же домена будет выполнять только код из того же домена
2) любая функция с таким же именем в другом домене должна выполняться скриптом из этого домена

Это точно не будет ЖЕ функция, которая выполняется, и если функция блокирует (как предупреждение), это будет вопрос, какая страница загружается первой

0 голосов
/ 04 июля 2011

Я не верю ни одному.Вы действительно должны ссылаться на iframe, если хотите вызвать в нем функцию:

document.getElementById('iframeid').contentWindow.myFunc();

Имейте в виду, что вы НЕ сможете получить доступ к чему-либо в iframe, если не имеет того же происхождения1005 * как родитель.

0 голосов
/ 04 июля 2011

Ни один не будет вызван, если вы не позвоните им. Так что это зависит от того, когда вы звоните им.

Если вызов является встроенным на странице, то вызов на внешней странице, вероятно, будет вызван первым, просто потому, что он получает преимущество.

Поскольку они существуют в разных документах, ни один из них не заменит другой. Поскольку документы находятся на разных хостах, ни один из них не может быть перезаписан из другого документа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...