2012-12-29 42 views
0

我有一個表單,其中我已經採取了一個文本字段,並且還在其中稱爲iframe,並且在iframe中有一個Name的文本字段。我想在使用JavaScript/jQuery的鍵盤上將Name顯示到我的表單文本字段中。我的意思是,我已經進入到Name文本字段中的東西,它會顯示在我的輸入字段中。
See the attached image I want to display name from iframe in <code>Name</code> input field within form 如何獲取iframe內的文本字段中的文本是否跨域?

我打電話從其他domain.I iframe中使用了下面的代碼

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

回答

1

這應該工作:

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

UPDATE:

您可以在related question閱讀更多關於這個話題,BEC 。我現在沒有可能設置測試這個特定案例的環境。

的一點是,你應該叫 的jQuery對象($),而不是你的父頁面。

+0

我得到 錯誤:語法錯誤:語法錯誤 源文件:文件:/// C :/Users/monika.m/Desktop/iframe.html Line:30 源代碼: var windowjQuery = $('#progressive')[0] .contentWindow。$; – Rash

+0

@拉什,更新了答案。 –

1

在你的父頁面,你控制域名?如果是這樣,請創建一個子域。比方說,你父頁面名爲example.com,然後創建一個子域iframe.example.com

在你父頁面,則需要再只設置

document.domain = "example.com"; 

與當時被認爲是安全域的子域你將被允許在2頁之間進行交談。

還有一個更廣泛的描述在這裏: Ways to circumvent the same-origin policy

1

我不確定這是否適用於跨域,但您可能想查看jQuery .bind()

下面是.bind()的例子

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

更多/更好的細節here on W3schools和現場演示here。但那些不是跨域的。還有更多的例子here

否則,這裏是如何從母體獲得的JavaScript在孩子的iframe的例子:

document.getElementById('ApplicantInfo1_FirstName').contentWindow.yourfunction() 
相關問題