0

我有一个表单,我在其中获取了一个文本字段,并且在其中也称为 iframe,并且在该 iframe 中有一个用于Name. 我想使用 JavaScript/jQuery 将其显示Name到我的表单文本字段中。我的意思是,我在文本字段中输入了一些Name内容,它将显示在我的输入字段中。
请参阅附件图像我想在表单中的 <code>Name</code> 输入字段中显示 iframe 中的名称

我正在从另一个域调用 iframe。我使用了以下代码

<script> 
var iframe = document.getElementById('progressive');
var innerDoc = iframe.contentDocument || iframe.contentWindow.document;
var usernameTextBox = innerDoc.getElementById('ApplicantInfo1_FirstName');
usernameTextBox.focus();
</script>
4

3 回答 3

1

在您的父页面中,您是否控制域名?如果是这样,请创建一个子域。假设您的父页面名为 example.com,然后创建一个子域 iframe.example.com

在您的父页面中,您只需设置

document.domain = "example.com";

然后将子域视为安全域,您将被允许在 2 个页面之间进行交谈。

这里有更广泛的描述: 绕过同源策略的方法

于 2012-12-29T09:57:13.980 回答
1

这应该有效:

var windowjQuery = $('#progressive')[0].contentWindow.$;
var f = $('#progressive').contents().find('#ApplicantInfo1_FirstName');

更新:

您可以在相关问题中阅读有关此主题的更多信息,bec。我现在无法设置环境来测试这种特殊情况。

关键是,你应该调用<iframe> jQuery对象 ( $),而不是你的父页面。

于 2012-12-29T10:05:03.443 回答
1

我不确定这是否适用于跨域,但您可能想查看jQuery .bind()

这是 .bind() 的示例

$('#progressive').load(function() {
  $(this)
    .contents()
    .find('#ApplicantInfo1_FirstName')
    .bind('keydown', function() {
        //  do stuff
    });
});

更多/更好的细节在这里 W3schools和现场演示在这里。但那些不是跨域的。这里还有更多示例。

否则,这是一个关于如何从父级访问子 iframe 中的 javascript 的示例:

document.getElementById('ApplicantInfo1_FirstName').contentWindow.yourfunction()
于 2012-12-29T10:17:21.977 回答