19

我有两个框架,想从另一个框架访问一个框架中的元素:

第一帧:

<div id='someId'>...</div>

第 2 帧:

var div=document.getElementById('someId');

div.innerHTML='something'; 

这在 Firefox 中不起作用,所以我想确定一下,我可以通过 ID 访问另一个框架中的元素吗?

4

6 回答 6

23

您可以使用参考另一个框架

window.frames["framename"]

然后你可以通过使用来引用 DOM 中的元素

window.frames["framename"].document.getElementById ( "yourelementid" );
于 2009-11-27T09:45:57.303 回答
13

问题可能是您所在的当前框架。如果window.frames['framename']不起作用,请尝试parent.frames['framename']访问顶级框架。

if(parent.frames && parent.frames['framename']) {
   var elem = parent.frames['framename'].document.getElementById(...); 
   // etc
}
于 2014-12-18T20:22:25.650 回答
1

我在使用 JS 版本时遇到问题,但能够将这些示例用于工作 jQuery 版本:

var obj = $('#yourelementid', parent.frames["framename"].document);
于 2016-01-07T18:50:25.877 回答
1
document.getElementById('frameId').contentDocument.getElementById('frameChild');
于 2020-05-15T21:13:24.523 回答
0

或者,如果您想试试运气,您可以只使用数字参数。

window.frames[0].document

于 2017-10-13T17:39:57.997 回答
0

由于某些原因

window.frames["framename"].document.getElementById ( "yourelementid" );

不适合我。

这另一种方法做到了:

   document.getElementById('framename').contentWindow.document.getElementById('yourelementid');
于 2019-05-26T18:40:18.143 回答