14

私はタグに基づいた古代のプロジェクトに取り組んでいます。

親ページ(index.html)の一般的なHTML構造は次のとおりです。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="en">
<head>  
</head>
<frameset rows="75px,*" frameborder="0">
    <frame name="frame1" src="frames/frame1.html">
    <frameset class="child_frameset">
        <frame name="frame3" src="frames/frame3.html">
    </frameset>
</frameset>
</html>

ここでは、子フレーム(frame3.html)でjavascript関数を指定する方法を説明します。

<!DOCTYPE html>  
<html lang="en">  
<head>
    <script type="text/javascript">
        function helloWorld(){
            alert('hello world!');
        }
    </script>   
</head>
<body>
    <h1>I'm frame 3</h1>
</body>
</html>

私の仕事はhelloWorld()関数を呼び出すことです。それ、どうやったら出来るの?
前もって感謝します!

4

3 に答える 3

25

あなたはこのようにそれを行うことができます:

document.getElementById('frame3').contentWindow.helloWorld();
于 2011-05-10T07:37:02.803 に答える
2

子フレームからメソッドを呼び出すことができます

window.frames[n].frames[m].methodName()

ここで、n、mは0から始まる整数です。ドキュメントが1つのフレームしかない場合は、frames [m]の部分を削除して、作業を完了してください。

もう1つ、エラーを試して、正確なフレーム番号と方法を見つけてください。お役に立てれば

于 2016-03-10T07:57:55.503 に答える
1

contentWindow、contentDocumentを確認し、フレームオブジェクトを取得して、呼び出しを実行します。

var siblingFrame;
if (parent.document.getElementById('siblingFrameId').contentWindow){
  siblingFrame = parent.document.getElementById('siblingFrameId').contentWindow;
} else if (parent.document.getElementById('siblingFrameId').contentDocument){
  siblingFrame = parent.document.getElementById('siblingFrameId').contentDocument;
} else if (parent.document.getElementById('siblingFrameId')) {
  siblingFrame = parent.document.getElementById('siblingFrameId');
}

siblingFrame.helloWorld();
于 2013-10-01T11:43:35.307 に答える