1

例えば:

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タグ内に配置し、それを別のファイルに配置して、タグのsrcattrubuteで指定する必要があったことです。この場合、parent.functionFromScriptJS()が機能します。

4

2 に答える 2

2

Iframeはインラインコンテンツをサポートしていません。別のファイルを参照するには、src属性を使用する必要があります。タグの内部テキストは、<iframe>iframeをサポートしていないブラウザに表示されます。

例:

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

ページを読み込んだら、次を使用してスクリプトを呼び出すことができるはずです。parent.functionFromScriptJS();

于 2008-12-04T09:06:54.003 に答える
0

ここでの最善の解決策は、iframeを使用せず(正式には非推奨ではありませんが、XHTML 1.1仕様には表示されません)、AJAXgetを使用してページを取得してロードすることです。<div>

その後、javascript関数は通常どおり機能します!

于 2008-12-04T09:17:11.987 に答える