专注于负载上的iframe中的一个满足的身体

时间:2012-05-11 15:40:54

标签: javascript iframe contenteditable

这在Firefox和IE中运行良好,但我无法在Chrome中使用它:

self.editorIframeDocument.body.focus()

editorIframeDocument == contentDocument || contentWindow.document取决于浏览器。

.body.focus()在编辑器加载时就可以了,我可以立即开始输入。但是,在Chrome中它是完美的,它不起作用。我尝试连接到iframe以及iframe #document,但没有去。

我看到了一些设置选择并将其删除的黑客攻击,但它们都是<div> contenteditable中的所有示例,其中特定的HTML不是<iframe>,它可以包含任何内容大量的文字。

没有jQuery。

1 个答案:

答案 0 :(得分: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();
    }
  });
}