2011-01-19 84 views
1

我有一個html頁面,其中有兩個框架集,每個框架集指向不同的html。從其他框架訪問一個框架集中的元素

現在,讓我們說,我有第一個框架集(html)中的文本框和第二個框架集(html)中的按鈕。

任何人都可以請讓我知道如何隱藏文本框,當我點擊按鈕?

+0

[javascript:可以訪問不同框架中的對象?](http://stackoverflow.com/questions/987423/javascript-get-access-to-objects-in-different-frame) – 2011-01-19 15:14:02

回答

1

沒有測試,但它應該是這樣的(在你的按鈕的onclick處理程序):

parent.frames[1].document.getElementByid('mytextfield').style.display = 'hidden'; 
//   ^^^ here you could also access the frame by its name using ['mysecondframe'] 
0

您可以有問題的框架的document對象通過getElementById函數訪問元素(請注意,我們使用目標框架的document,而不是我們自己的)。您可以按名稱從框架集中獲取框架  —框架名稱將成爲框架集的window對象的屬性。

實施例(live copy; button frame code):

var textbox = parent.targetFrame.document.getElementById('theTextBox'); 
textbox.value = "You clicked at " + new Date(); 

...其中targetFrame是目標幀的名稱。您也可以使用frames[n],其中n是框架集中框架的索引,但我發現名稱更加健壯。

以上示例已經過測試,適用於Firefox,Chrome和Opera for Linux和IE6   —,因此應適用於各種瀏覽器。

1

只有在兩個框架位於同一個域中時,纔可以執行上述所有操作。由於瀏覽器security policies,如果幀不在同一個域上,甚至在同一個協議上,它們不能相互交互(javascript是不可能的)。