2016-08-03 78 views
2

什麼是我需要訪問的jQuery選擇器用戶名main.html?警報應該說「鮑勃」。什麼是框架內容的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訪問contentWindow頭文件中的JavaScript變量而不是DOM元素? – p1xelarchitect

+0

@ p1xelarchitect,因爲用戶名在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)爲什麼?你應該得到frame [「left」]的「window」對象,而變量「username」是frame [「left」]的窗口的保護。 winleft)object.so,你可以得到用戶名的值。