2

私は何度も何度もメソッドを内部から呼び出す方法を試しましたが、iframeまだ成功していません。下記を参照してください、

  1. main.html :2 つの iframe で構成される

  2. iframe-1 は、main.html のメソッドを呼び出したい場所、または 2 番目の iframe の src を変更したい場所から index.html にリンクされています。

main.html

<html> 
    <head> </head>
    <body>
     <iframe id="iframe-1" src="index.html"></iframe>
     <iframe id="iframe-2" ></iframe>
    </body>
</html>

index.html

<html> <head> 
<script type="text/javascript">
 $(document).ready(function(){
    // How to access the method of main.html and change the iframe src
 });
</script>
</head> <body>
    ......
</body> </html>

注:試してみましたがparent.methodName()、動作しwindow.parent.methodName()ません

@EDIT : IE と MOZILLA では成功しましたが、Chrome ではエラーが発生しました ( undefined のメソッド 'getElementById' を呼び出せません)

4

3 に答える 3

1

index.html

<html>
<head> 
    <script type="text/javascript">
        function run() {
            window.parent.document.getElementById("iframe-2").src = "/test.html";
        }
    </script>
</head>
<body onload="run();">
</body>
</html>

これはどう?

または、main.html 内にメソッドを作成し、window.parent を使用してアクセスします。メソッド名();

ロン。

ps。window.parent. メソッド名(); main.html にメソッドがある場合、私にとっては完璧に機能します

main.html

<html> 
    <head> </head>
    <script>
        function foo() {
            alert(1);
        }       
    </script>
    <body>
       <iframe id="iframe-1" src="index.html"></iframe>
       <iframe id="iframe-2" ></iframe>
    </body>
</html>
于 2013-07-12T10:18:20.447 に答える
1

私はこれを短くしています。

同じドキュメントの iframe/frames [ウィンドウ共有] を楽しみにしています。別のドキュメント内の 1 つのドキュメントで定義された変数にアクセスするには、DOM 2 に従って document.importNode(original Node as in other document,boolean) メソッドを使用する必要があります。javacript コードに対してこのようなことを行います ...

iframe=document.getElementsTagName("iframe")[0];

documentI (元の変数/ここに存在するノード)-

OriginalNode=iframe.contentWindow.document.getElementsByTagName(//Tag name of Node//)

documentII(ここで複製するノード)- iframe.contentWindow.document.importNode(OriginalNode,True)

ノードは、単純な DOM メソッドによって、任意の iframe 内の任意のメソッド、プロパティ、またはオブジェクトから作成できます。これはうまくいくでしょう

于 2013-07-12T10:18:43.557 に答える
1

あなたは試してみるべきです

document.getElementById("iframe-1").contentWindow.func();

また

var $f = $("#myIFrame");
var fd = $f[0].document || $f[0].contentWindow.document; // document of iframe
fd.MyFunction();  // run function

ドキュメント

于 2013-07-12T10:13:06.397 に答える