从其他框架访问一个框架集中的元素

问题描述:

我有一个html页面,其中有两个框架集,每个框架集指向不同的html。从其他框架访问一个框架集中的元素

现在,让我们说,我有第一个框架集(html)中的文本框和第二个框架集(html)中的按钮。

任何人都可以请让我知道如何隐藏文本框,当我点击按钮?

+0

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

没有测试,但它应该是这样的(在你的按钮的onclick处理程序):

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

您可以有问题的框架的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   —,因此应适用于各种浏览器。

只有在两个框架位于同一个域中时,才可以执行上述所有操作。由于浏览器security policies,如果帧不在同一个域上,甚至在同一个协议上,它们不能相互交互(javascript是不可能的)。