2016-08-03 5 views
2

アクセスする必要があるjQueryセレクターとはユーザー名main.html?アラートに「Bob」と表示されます。フレームコンテンツのjqueryセレクタとは何ですか?

main.htmlを

<head> 
<script> 
    alert(username); // *** not working *** 
</script> 
</head> 

<frameset> 
    <frame name="left" src="left.html"> 
    <frameset> 
    <frame name="top" src="top.html"> 
    <frame name="right" src="right.html"> 
    </frameset> 
</frameset> 

right.html

<head> 
<script> 
    var username = 'Bob'; 
</script> 
</head> 

答えて

0

contentWindowプロパティを使用します。

例:

document.getElementById('frame_id').contentWindow.$('#' + idOfElementInFrame); 

注:これはiframeタグのために働きます。 frameタグでも動作するはずですが、frameタグは廃止されているため、問題が発生する可能性があります。

+0

ありがとうDhiviya。どのようにidによってDOM要素の代わりにcontentWindowヘッダーのjavascript変数にアクセスできますか? – p1xelarchitect

+0

@ p1xelarchitect、usernameはcontentWindow内にグローバルスコープを持っているので、contentWindow.usernameを使って取得することができます(変数にアクセスするときに、フレーム内でドキュメントヘッドがすでに実行されている場合)。 –

1
There is an example: 
(1)mainpage: 

    <html> 
    <script> 
    function show(){ 
     var winleft = window.frames["left"]; 
     alert(winleft.username); 
    } 
    </script> 
    <frameset cols="25%,50%,25%"> 
     <frame src="left.html" name="left"> 
     <frame src="left.html" name="middle"> 
     <frame src="left.html" name="right"> 
    </frameset> 

    </html> 

(2)left.html 

<head> 
<script> 
    var username = 'Bob'; 
</script> 
</head> 

(3)なぜですか? すべてのフレームには独自のオブジェクトウィンドウがあり、 フレームの[ウィンドウ]オブジェクトを取得する必要があります。変数 "username"は、フレーム["left"]のウィンドウのwinleft)object.so、あなたはusernameの値を得ることができます。

関連する問題