2012-05-11 124 views
0

這在Firefox和IE瀏覽器工作正常,但我不能讓這個在Chrome工作:聚焦於CONTENTEDITABLE體的iframe負荷

self.editorIframeDocument.body.focus() 

editorIframeDocument == contentDocument || contentWindow.document取決於瀏覽器。

.body.focus()使編輯器加載時我可以立即開始輸入。但是,在Chrome中完美無損。我嘗試連接到iframe以及iframe #document,但沒有去。

我看到一些黑客與設置選擇和刪除它,但他們裏面沒有一個特定HTML可能有從一無所有到大量文本的東西在<div>contenteditable的例子。

沒有jQuery。

回答

0

問題是編輯器還沒有加載,所以Chrome不會讓我專注於它。檢查就緒狀態修復了問題:

if (self.settings.focusOnLoad) { 
    // We need to wait until all three iframes are done loading by waiting until the parent 
    // iframe's ready state == complete, then we can focus on the contenteditable 
    self.iframe.addEventListener('readystatechange', function() { 
    if (self.iframe.readyState == 'complete') { 
     self.editorIframeDocument.body.focus(); 
    } 
    }); 
} 
+0

您什麼時候試圖調用焦點?我想我以前用計時器或其他東西解決了這個問題。 –

+0

我在readystatechange監聽器外調用它。因此,它會檢查選項是否已設置並運行焦點代碼,但由於該元素對Chrome尚未存在,因此無法集中。 –