从IFrame中的外部html文件中获取文本框值

时间:2014-02-20 10:46:52

标签: java javascript jquery html iframe

我有两个HTML文件( index.html external.html )。 external.html 有一些注册字段。使用IFrame,在 index.html 中加载 external.html 。我无法获得 external.html 输入字段值。

我用过

$("#iframeid").contents().find("body").find("#inputfieldid").val(),

但它显示未定义的错误。我也试过这个:

var frameObj = (element.contentWindow || element.contentDocument);
if (frameObj.document) frameObj = frameObj.document;
frameObj.getElementById("inputfieldid").value;

但它不起作用。有没有想过在IFrame

中获取外部文件输入字段的值

2 个答案:

答案 0 :(得分:0)

尝试以下方法:

var obj=document.getElementById("iframeid");
var n1=obj.contentWindow.document.getElementById("inputfieldid").value;

我的测试代码:

und.php 包含iframe

<!DOCTYPE html>
<html>
<head>
<script>
function altr(){
    var obj=document.getElementById("iframeid");
    var n1=obj.contentWindow.document.getElementById("inp").value;
    alert(n1);
}
</script>
</head>
<body>
<input type="button" value="Submit" onclick="altr()" />
<iframe id="iframeid" src="und1.php" />
</body>
</html>

und1.php

<!DOCTYPE html>
<html>
<body>
<input id="inp" type="text" />
</body>
</html>

答案 1 :(得分:0)

在这里,我想出了我的问题的答案。当从stronghost本身加载 external.html 文件时,Mr.Zword的答案正常工作。我已经实现了这些值从服务器加载外部文件的方式如下:

1)在 index.jsp 文件中,调用 IFrame 中的 Servlet 。而不是给 external.html 操作属性中。

2)在Servlet doGet方法中,您必须建立与服务器的连接,并使用正确的 external.html 文件URL向服务器发送请求。

3)最后通过 PrintWriter 类打印该值。

4)现在您可以使用以下方式获取IFrame值。

var obj=document.getElementById("iframeid");
var n1=obj.contentWindow.document.getElementById("inp").value;