Javascript 如何从父窗口访问iframe中的元素?

Javascript 如何从父窗口访问iframe中的元素?,javascript,html,iframe,Javascript,Html,Iframe,我有一个iframe。我想访问iframe中的表。我想从iframe的父窗口访问它。我写过类似的JS Document.getElementById("table Id"); 但结果是无效的。获得它的过程是什么? 谢谢您必须从iFrame的文档中选择元素。根据Juan的评论,检查iFrame的名称和id var targetFrame = window.frames["nameOfIFrame"] || window.frames["iFrameId"]; targetFrame.docume

我有一个iframe。我想访问iframe中的表。我想从iframe的父窗口访问它。我写过类似的JS

Document.getElementById("table Id");
但结果是无效的。获得它的过程是什么?
谢谢

您必须从iFrame的文档中选择元素。根据Juan的评论,检查iFrame的名称和id

var targetFrame = window.frames["nameOfIFrame"] || window.frames["iFrameId"];
targetFrame.document.getElementById("tableId");
编辑

我刚刚用以下方法对此进行了测试:

window.frames["fName"].document.getElementById("Adam").innerHTML

在Chrome控制台中,它从my iframe中输出Adam div的html。

您必须从iframe的文档中选择元素。根据Juan的评论,检查iFrame的名称和id

var targetFrame = window.frames["nameOfIFrame"] || window.frames["iFrameId"];
targetFrame.document.getElementById("tableId");

x=document.getElementById("iFrameId");
x.contentDocument.getElementById("tableId");
编辑

我刚刚用以下方法对此进行了测试:

window.frames["fName"].document.getElementById("Adam").innerHTML
在Chrome控制台中,它从iframe中输出Adam div的html


x=document.getElementById("iFrameId");
x.contentDocument.getElementById("tableId");
如果你能使用jQuery,我想它可以跨浏览器工作

$iFrameId.contents.findtableId

如果你能使用jQuery,我想它可以跨浏览器工作


$iFrameId.contents.findtableId

有什么问题?window.frames[iFrameId].document.getElementById似乎作为本机返回method@PenchoIlchev-这个问题涉及在不同域上加载iframe代码-OP从未说过这里是这样。假设iFrame加载的是同一个域,上面的代码似乎工作正常-我刚刚测试了itframes[frameName]是访问框架内窗口对象的最佳跨浏览器方式。您的示例暗示了一个ID,但我的经验是,您还应该使用name属性@胡安曼德斯-谢谢。我对它进行了测试,使用iFrame的名称工作得非常出色。我不知道这比使用id更好,但我编辑了我的答案。有什么问题吗?window.frames[iFrameId].document.getElementById似乎作为本机返回method@PenchoIlchev-这个问题涉及在不同域上加载iframe代码-OP从未说过这里是这样。假设iFrame加载的是同一个域,上面的代码似乎工作正常-我刚刚测试了itframes[frameName]是访问框架内窗口对象的最佳跨浏览器方式。您的示例暗示了一个ID,但我的经验是,您还应该使用name属性@胡安曼德斯-谢谢。我对它进行了测试,使用iFrame的名称工作得非常出色。我不知道这比使用id更好,但我编辑了我的答案。我认为这在现在是不可能的,是跨域的吗?可能是@fskreuz的重复,只有当iframe不在同一个域上时才可能。否则,访问iframe中的元素就没有问题。@user1122379您应该提到iframe是否在同一个域上,因为问题的答案很大程度上取决于这个事实。我认为这在当今是不可能的,是跨域的吗?可能重复@fskreuz,只有当iframe不在同一个域上时才会出现这种情况。否则,访问iframe中的元素没有问题。@user1122379您应该提到iframe是否在同一个域上,因为问题的答案在很大程度上取决于这个事实。谢谢。但它不起作用。现在我想我可以使用一个div,并使用PHP-httprequest将该div填充到url。但是我不知道怎么做那个httpRequest。你能给我一些示例代码吗?谢谢。但它不起作用。现在我想我可以使用一个div,并使用PHP-httprequest将该div填充到url。但是我不知道怎么做那个httpRequest。你能给我一些示例代码吗?