【发布时间】:2009-09-20 04:18:47
【问题描述】:
我有 2 页:父母和孩子。
在父页面中,我有一个 iframe,我想在子页面的 JavaScript 中获取其值。有什么办法吗?....请指教。
【问题讨论】:
-
您的父母和孩子是否在同一个域中?如果它们不在同一个域中,跨站点域策略不允许 javascript 在它们之间进行通信。
标签: javascript iframe
我有 2 页:父母和孩子。
在父页面中,我有一个 iframe,我想在子页面的 JavaScript 中获取其值。有什么办法吗?....请指教。
【问题讨论】:
标签: javascript iframe
实际上只需要iframeElement。
从子文档内部:
var iframe = frameElement;
你就完成了。
【讨论】:
假设你的页面和框架结构如下
父级(包含 iframe) |--> 子页面(尝试在父页面中访问 iframe)还有那个
您可以使用来自子级的以下 JavaScript 语句访问 iframe 中名为“iFrameElement”的元素:
parent.frames['iFrame'].document.getElementById('iFrameElement').value;
或者只是来自包含 iframe 的父级的以下内容
frames['iFrame'].document.getElementById('iFrameElement').value;
由于框架名称在运行时是不确定的,您可以恢复为使用 window.frames 数组中的框架编号,如下(来自子级)
//assuming frames[0] refers to the iframe
parent.window.frames[0].document.getElementById('iFrameElement').value;
或来自父母
//assuming frames[0] refers to the iframe
window.frames[0].document.getElementById('iFrameElement').value;
【讨论】:
使用
parent.getElementById('elementId').value;
获取元素。如果你有多个嵌套的 iframe,你可以通过使用来获取根父级
top.getElementById('elementId').value;
两者都适用于您的情况。
【讨论】:
你可以使用
window.parent.getElementById('YOUR ID').value();
从父元素的 id 为“YOUR ID”的输入元素中获取值。
【讨论】:
尝试为您的 iframe 命名并像这样访问 iframe
window.parent.<iframe_name>.document.getElementById()
【讨论】:
您可以通过这种方式从 iframe 内部获取父文档中 iframe 的元素:
var iframe = parent.document.getElementById(window.frameElement.id);
【讨论】: