访问jquery对话框内iframe内的元素

时间:2017-10-06 16:37:23

标签: javascript jquery iframe

我需要在用户已经使用的页面内“加载页面”,而不是将其重定向到新页面。我的理解是,iframe是最好的方法。我喜欢jQuery的dialog box作为这个iframe内容的包装器,因为它看起来不错,允许用户重新定位弹出窗口并轻松关闭它。

但是我无法访问此iframe上的元素。我希望能够从用户的原始窗口中获取数据并将其添加到新的iframe的输入元素中,但我似乎无法找到执行此操作的语法。

iframe页面的代码中有一些内容覆盖了jQuery对$的使用,因此我无法使用$('#foo').text('bar')。我一直在尝试在纯JavaScript中找到正确的语法 - 比如

var a = window.frames["e_frame"].document.getElementById ("title");
a.text = 'foobar';

其中e_frame是我为iframe提供的ID,而title是在iframe中加载的元素的ID。我可以在开发者控制台中清楚地看到这些,但我无法访问它们,我不确定我做错了什么。在控制台中输入上面的命令会给我这个错误:

VM364:1 Uncaught TypeError: Cannot read property 'document' of undefined
    at <anonymous>:1:28

并在控制台中输入window.frames来调试自己给了我很多行,因为我不确定我在寻找什么。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

你试过这个吗?

var iframe = document.getElementById("e_frame");
var iframe_contents = iframe.contentDocument.getElementById('title');
相关问题