访问html表单元素,在iframe内没有id / name

时间:2016-04-15 05:03:33

标签: javascript jquery html forms iframe

我有以下代码结构(嵌套HTML,虽然这可能没有多大区别)

<html>
    <body>
        <iframe>
            <html>
                <form id="loginForm" name ="loginFormName">
                    <input id ="name" name ="username">
                    </input>
                </form>
            </html>
        </iframe>
    </body>
</html

我通过以下方式访问输入字段来尝试:

document.getElementById("name");
document.loginFormName.username;

但我相信iFrame阻碍了我访问这些元素。但是,首先以某种方式访问​​iFrame:

document.getElementByTagName("iframe).getElementById("name");

除了&#34; undefined&#34;。

之外,

不会产生任何结果

非常感谢帮助,我想自动设置输入字段的值并自动提交表单。 (form.submit)。我对Javascript或JQuery没有偏好。

4 个答案:

答案 0 :(得分:2)

您可以使用.contents()

  

如果元素是iframe,则contents()方法会查找匹配元素(包括文本节点)内的所有子节点,或内容文档。

$('iframe').contents().find('input')

如果您想提交表单,可以使用此方法。

$('iframe').contents().find('form').submit();

示例Fiddle demo,以显示contents( )如何访问iframe中的内容。

答案 1 :(得分:0)

访问iframe的元素非常简单。

您应该使用以下语法来访问输入元素&amp;表格提交:

$('iframe').contents().find('input'); //Form Element access

$('iframe').contents().find('#loginForm').submit(); //Form submit code

希望有助于解决您的疑问!

答案 2 :(得分:0)

如果您的iframe与您的父网页位于同一个域中,则可以使用document.frames集合访问这些元素。

为您的iFrame提供任何ID,并将myIFrame替换为您的iFrame ID

<强> window.frames [&#39; myIFrame&#39]。的document.getElementById(&#39;名称&#39)

如果您的iframe不在同一个域中,则出于安全原因,浏览器应阻止此类访问。

答案 3 :(得分:0)

问题是您是否错误地加载了iframe。

  <div class="main">
    <iframe src="iframecontent.html">
    </iframe>
  </div>


  <!--iframecontent.html :-->

  <html>
  <body>
      <form id="loginForm" name ="loginFormName">
          <input id ="name" name ="username">
          </input>
      </form>
    </body>
  </html>