我有以下代码结构(嵌套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");
不会产生任何结果
非常感谢帮助,我想自动设置输入字段的值并自动提交表单。 (form.submit)。我对Javascript或JQuery没有偏好。
答案 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>