从其他框架访问一个框架集中的元素
问题描述:
我有一个html页面,其中有两个框架集,每个框架集指向不同的html。从其他框架访问一个框架集中的元素
现在,让我们说,我有第一个框架集(html)中的文本框和第二个框架集(html)中的按钮。
任何人都可以请让我知道如何隐藏文本框,当我点击按钮?
答
没有测试,但它应该是这样的(在你的按钮的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是不可能的)。
[javascript:可以访问不同框架中的对象?](http://*.com/questions/987423/javascript-get-access-to-objects-in-different-frame) – 2011-01-19 15:14:02