javascript文档.getElementById在其它框架中

xggvc2p6  于 2023-01-01  发布在  Java
关注(0)|答案(7)|浏览(115)

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

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

框架2:

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

div.innerHTML='something';

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

up9lanfz

up9lanfz1#

您可以使用引用另一个框架

window.frames["framename"]

然后您可以使用以下命令在DOM中引用该元素

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

aydmsdu92#

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

if(parent.frames && parent.frames['framename']) {
   var elem = parent.frames['framename'].document.getElementById(...); 
   // etc
}
ki0zmccv

ki0zmccv3#

我在使用JS版本时遇到了一些问题,但是我能够使用这些例子来创建一个工作的jQuery版本:

var obj = $('#yourelementid', parent.frames["framename"].document);
sg2wtvxw

sg2wtvxw4#

document.getElementById('frameId').contentDocument.getElementById('frameChild');
wqsoz72f

wqsoz72f5#

或者,如果你想试试运气,你可以只使用一个数字参数。
第一个月

iqjalb3h

iqjalb3h6#

因为某些原因

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

对我不起作用。
另一种方法:

document.getElementById('framename').contentWindow.document.getElementById('yourelementid');
xkrw2x1b

xkrw2x1b7#

只需使用frameId.MyElementId
当然,在定义框架时,使用“name=...."是不够的,在框架标签中使用“id=...”更合适。例如:

<iframe id=MyFrame> .... 
          <input id=MyElementId>
               ...

    <script>
       // do something with MyElementId
           MyFrame.MyElementId.value = "something";

至少,它在2022年(几乎是2023年)之前有效。
[Note我甚至没有使用“name”......这在现在是完全没有必要的,除非你想使用单选按钮和多个引用同一个互斥元素的〈INPUT's]

相关问题