【问题标题】:Accessing fields of an iframe with javascript使用 javascript 访问 iframe 的字段
【发布时间】:2012-09-21 07:43:09
【问题描述】:

我读到以下内容应该可以使用 javascript 访问 iframe 的内容:

document.getElementById("iframe_name").contentDocument

document.getElementyById("iframe_name").contentWindow.document

但是,这些方法都不适合我。我尝试访问的 iframe 是我创建的 Google 表单。这是我为我的网站创建的注册表单。我想对用户输入的某些字段进行一些计算,然后在 iframe 之后显示它。使用 javascript 访问这些字段是我能想到的最佳方式。为什么我无法访问它?有没有更好的方法来实现我的目标?谢谢。

【问题讨论】:

  • 这看起来是正确的。是什么告诉您这些方法不起作用?

标签: javascript forms iframe dom


【解决方案1】:

我不知道你想做什么,但也许这会对你有所帮助..

我用它来重新加载框架

document.getElementById('graphFrame').contentDocument.location.reload(true);

可以看到location属性是和iframe相关的。

接下来,我正在像这样更改 Iframe 中的 div。

top.frames["graphFrame"].document.getElementById('right_example');

所以 top.frames 是页框的数组。然后我正在搜索一个 dom 元素,他的 ID 是“right_example”,然后你可以用它做任何你想做的事情。

【讨论】:

    【解决方案2】:

    你所拥有的是正确的。这是一个更完整的序列,应该可以跨浏览器工作:

    var ifr=document.getElementById("iframe_name");
    var doc=ifr.contentWindow||ifr.contentDocument;
    if (doc.document) doc=doc.document;
    

    更新:正如另一个答案中所说,这不适用于跨域(例如,如果您尝试从 mydomain.com 访问 google.com)。

    【讨论】:

      【解决方案3】:

      您无法从您的服务器访问外部页面,例如 google.com。

      【讨论】:

      • 是的,我想就是这样。谢谢。无论如何,我最后所做的只是简单地复制 iframe 中的代码(这只是一个谷歌表单),然后我可以随意操作它,我也可以访问它。最后,它所要做的就是它所做的 POST 请求(发送到 Google 为表单创建的某个 URL)。谢谢大家。
      猜你喜欢
      • 1970-01-01
      • 2014-03-23
      • 2021-01-30
      • 1970-01-01
      • 2011-04-11
      • 1970-01-01
      • 1970-01-01
      • 2011-12-09
      • 2010-11-29
      相关资源
      最近更新 更多