2013-03-16 50 views
1

我'的成員,更新舊代碼,這部分不工作:文件是不是WindowBase

IFrameElement iframe = query('#myframe iframe'); 
Window iframeW = iframe.contentWindow;// cast error 
var myframeDoc = iframeW.document; 

我改變Window爲「WindowBase`:

IFrameElement iframe = query('#myframe iframe'); 
WindowBase iframeW = iframe.contentWindow; 
var myframeDoc = iframeW.document; 

document不是WindowBase的成員。 我要訪問它來查詢是這樣的:

myframeDoc.query("#myId"); 

用JavaScript,該解決方案的工作原理:

var myframeDoc = document.querySelector('#myframe iframe').contentWindow.document; 

回答

2

iframe的和Windows略有不同的API,所以你必須使用WindowBase而非Window

您可以在API文檔中看到IFrameElement.contentWindow的類型爲WindowBase,您還應該在編輯器的彈出文檔中看到它。

+0

確實。我正在更新舊代碼,並且發現了一個關於他的改變。我的新問題是__document__不是__WindowBase__的成員。 我的需求是在這樣的DOM上查詢:__myframeDoc.query(「myid」)__ – 2013-03-16 15:01:33

+0

那麼很好的問題。你可能想要更新這個問題來說明WindowBase缺少一個文檔獲取器,它絕對值得一個bug報告。 – 2013-03-17 21:20:46

+0

謝謝!我打開它http://dartbug.com/9224 – 2013-03-18 10:31:31