2012-10-30 32 views
0

我正在尋找一種方法來修改iFrame屬性(實際上是一個文本框的值)。 iFrame位於另一個域上,我可以訪問它。根據我的理解,我必須在完成整個頁面(包括iFrame)後才能執行此操作。我tryed類似的東西:如何在完全呈現框架後調用javascript?

<script type="text/javascript"> 
$(window).load(function() { 
    alert("test"); 
    d = document.getElementById("myframe"); 
    d.contentWindow.document.getElementById("frametxtbox"); 
}); 
</script> 

但我一直得到以下錯誤:

Cannot call method 'getElementById' of undefined

我也注意到,警報彈出的iFrame之前渲染的,所以我覺得我的腳本之前執行頁面有權訪問幀值,因此我得到錯誤。我對與網絡有關的編程知識很少(總是在後端工作),所以如果我的問題也許沒有意義,請原諒我。

+0

'contentWindow'不是文檔。 IIRC你想要'contentWindow.document' –

+0

試過這個,同樣的錯誤。 – raz3r

+0

你有權訪問在iframe中加載的文檔嗎? – Kaf

回答

0

如果iframe指向另一個域,它將受制於same origin policy。這意味着在你嘗試訪問它的文檔之前,你必須檢查wiki並放寬策略(查看鏈接瞭解詳情)。之後,您需要將ready事件綁定到iframe文檔,而不是您的主頁文檔。

$(window.frames['myframe'].document).ready(function() { alert('moo'); }); 

看看這有助於:)

相關問題