我有一个可编辑的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);
};
我认为这是失败的,因为当我点击按钮时焦点会发生变化。但是,我不知道如何纠正这个问题。谢谢你的帮助。
答案 0 :(得分:0)
您对影响代码插入的焦点偏移是正确的。
使用jQuery库,您可以将焦点移回按钮单击绑定中的iframe:
$('#button').click(function(event) {
event.preventDefault();
$('#iframe').focus();
insertAtCursor('iframe', 'test-text', null);
});
在纯javascript中,在执行insertAtCursor()之前转移焦点,如下所示:
document.getElementById('iframe').focus()