我需要在用户已经使用的页面内“加载页面”,而不是将其重定向到新页面。我的理解是,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
来调试自己给了我很多行,因为我不确定我在寻找什么。
有什么想法吗?
答案 0 :(得分:1)
你试过这个吗?
var iframe = document.getElementById("e_frame");
var iframe_contents = iframe.contentDocument.getElementById('title');