将文本插入由Iframe外部的按钮触发的Designmode Iframe

时间:2011-12-21 20:48:55

标签: javascript iframe designmode

我有一个可编辑的iframe,当用户点击iframe外的按钮时,我想在光标位置插入文本。我试图使用以下代码插入文本:

function insertAtCursor(iframename, text, replaceContents) {
      if(replaceContents==null){replaceContents=false;}
      if(!replaceContents){//collapse selection:
         var sel=document.getElementById(iframename).contentWindow.getSelection()
         sel.collapseToStart()
      }
      document.getElementById(iframename).contentWindow.document.execCommand('insertHTML', false,     text);
};

我认为这是失败的,因为当我点击按钮时焦点会发生变化。但是,我不知道如何纠正这个问题。谢谢你的帮助。

1 个答案:

答案 0 :(得分:0)

您对影响代码插入的焦点偏移是正确的。

使用jQuery库,您可以将焦点移回按钮单击绑定中的iframe:

$('#button').click(function(event) {
    event.preventDefault();
    $('#iframe').focus();
    insertAtCursor('iframe', 'test-text', null);
});

在纯javascript中,在执行insertAtCursor()之前转移焦点,如下所示:

document.getElementById('iframe').focus()