首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果跨域,如何获取位于iframe内的文本字段中的文本?

问如果跨域,如何获取位于iframe内的文本字段中的文本?
EN

Stack Overflow用户
提问于 2012-12-29 17:50:50
回答 3查看 789关注 0票数 0

我有一个表单,我在其中获取了一个文本字段,并在其中调用了一个iframe,在该iframe中有一个用于Name的文本字段。我想使用JavaScript/jQuery在我的表单文本字段中显示Name。我的意思是,虽然我在Name文本字段中输入了一些内容,但它将显示在我的输入字段中。

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

代码语言:javascript
复制
<script> 
var iframe = document.getElementById('progressive');
var innerDoc = iframe.contentDocument || iframe.contentWindow.document;
var usernameTextBox = innerDoc.getElementById('ApplicantInfo1_FirstName');
usernameTextBox.focus();
</script>
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-12-29 18:05:03

这应该是可行的:

代码语言:javascript
复制
var windowjQuery = $('#progressive')[0].contentWindow.$;
var f = $('#progressive').contents().find('#ApplicantInfo1_FirstName');

更新:

您可以在related question,bec上阅读有关此主题的更多信息。我现在不可能设置环境来测试这个特定的情况。

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

票数 1
EN

Stack Overflow用户

发布于 2012-12-29 17:57:14

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

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

代码语言:javascript
复制
document.domain = "example.com";

带有的子域将被视为安全域,您将被允许在两个页面之间交谈。

这里有一个更广泛的描述:Ways to circumvent the same-origin policy

票数 1
EN

Stack Overflow用户

发布于 2012-12-29 18:17:22

我不确定这在跨域中是否有效,但你可能想看看jQuery .bind()。

下面是.bind()的一个示例

代码语言:javascript
复制
$('#progressive').load(function() {
  $(this)
    .contents()
    .find('#ApplicantInfo1_FirstName')
    .bind('keydown', function() {
        //  do stuff
    });
});

更多/更好的详细信息here on W3schools和一个现场演示here。但这些不是跨域的。还有更多的例子here。

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

代码语言:javascript
复制
document.getElementById('ApplicantInfo1_FirstName').contentWindow.yourfunction()
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14080501

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档