访问JavaScript中的iframe元素

arc*_*roy 26 javascript iframe

我有一个网页,其中iframe中有一个textarea.我需要使用JavaScript从其子页面读取此textarea的值.

目前,通过window.parent.getelementbyID().value在JavaScript中使用,我能够获取父页面中除iframe中的textarea之外的所有控件的值.

任何人都可以给我任何指示来解决这个问题吗?

RaY*_*ell 51

如果您的iframe与父页面位于同一个域中,则可以使用document.frames集合访问元素.

// replace myIFrame with your iFrame id
// replace myIFrameElemId with your iFrame's element id
// you can work on document.frames['myIFrame'].document like you are working on
// normal document object in JS
window.frames['myIFrame'].document.getElementById('myIFrameElemId')
Run Code Online (Sandbox Code Playgroud)

如果您的iframe不在同一个域中,则出于安全原因,浏览器应阻止此类访问.

  • `document.frames`不再有效.请改用"window.frames". (13认同)
  • `.contentDocument`而不是`document`对我有用 (3认同)

小智 15

你应该从window和不访问框架document

window.frames['myIFrame'].document.getElementById('myIFrameElemId')
Run Code Online (Sandbox Code Playgroud)


小智 14

window.frames['myIFrame'].document.getElementById('myIFrameElemId')

不适合我,但我找到了另一种解决方案.使用:

window.frames['myIFrame'].contentDocument.getElementById('myIFrameElemId')
Run Code Online (Sandbox Code Playgroud)

我在Firefox和Chrome上查了一下.