其他框架中的javascript document.getElementById

ant*_*abo 17 javascript dom html-frames

所以,我有2帧,并希望从一帧到另一帧访问元素:

第1帧:

<div id='someId'>...</div>
Run Code Online (Sandbox Code Playgroud)

第2帧:

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

div.innerHTML='something'; 
Run Code Online (Sandbox Code Playgroud)

这在某种程度上不能在Firefox中运行所以我想确定,我可以通过其ID访问另一帧中的元素吗?

rah*_*hul 23

您可以使用参考其他框架

window.frames["framename"]
Run Code Online (Sandbox Code Playgroud)

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

window.frames["framename"].document.getElementById ( "yourelementid" );
Run Code Online (Sandbox Code Playgroud)

  • 这不是在chrome中的wirking,`window.frames ['framename'].document`里面什么都没有.我的意思是`windows.franes ['framename'].ducumnet.getElementById(...)...`results`Uncaught TypeError:无法调用undefined`错误的方法'getElementByName'. (5认同)
  • @as:`getElementByid`仅限于查看`document`对象,它是一个方法.请记住,框架实际上是一个单独的"窗口"对象,并且对`window`->`document`层次结构的检查应该清楚地说明为什么一个`document`上的方法不能检查`document`中的`document`.不同的`窗口`. (3认同)

Bri*_*can 12

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

if(parent.frames && parent.frames['framename']) {
   var elem = parent.frames['framename'].document.getElementById(...); 
   // etc
}
Run Code Online (Sandbox Code Playgroud)