Видимость сценария включает в себя IFRAME - PullRequest
1 голос
/ 04 декабря 2008

Например:

script.js:

function functionFromScriptJS() {
    alert('inside functionFromScriptJS');
}

iframe.html:

<html>
<head>
<script language="Javascript" src="script.js"></script>
</head>
<body>

<iframe>
  <body>
     <script language="JavaScript">
       functionFromScriptJS();
     </script> 
  </body> 
</iframe>

</body>
<html>

Вышеуказанный вызов functionFromScriptJS () не работает.

Первое предположение parent.functionFromScriptJS () тоже не работает.

Можно ли получить доступ к такой внешней функции из iframe, если включение включено не в сам iframe, а в родительский документ?

@ Edit: Поэтому моя ошибка заключалась в том, что я поместил документ в тег iframe, и я мог бы поместить его в отдельный файл и указать через атрибут src attrubute тега. В этом случае parent.functionFromScriptJS () работает.

Ответы [ 2 ]

2 голосов
/ 04 декабря 2008

Iframes не поддерживают встроенный контент. Вы должны использовать атрибут src для ссылки на другой файл. Внутренний текст тега <iframe> будет отображаться в браузерах, которые не поддерживают фреймы.

Пример:

<iframe src="someFile.html" width="100%" height="300px">
  <p>Your browser does not support iframes.</p>
</iframe>

После загрузки страницы вы сможете вызвать скрипт, используя parent.functionFromScriptJS();

0 голосов
/ 04 декабря 2008

Лучшее решение здесь, я думаю, состоит в том, чтобы не использовать iframe (хотя формально это не рекомендуется, он не указан в спецификации XHTML 1.1) и использовать AJAX get для захвата страницы и загрузки ее в <div>

Тогда функции JavaScript будут работать как обычно!

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