将文本插入由 Iframe 外部按钮触发的设计模式 Iframe
我有一个可编辑的 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);
};
我认为这是失败的,因为当我单击按钮时焦点会发生变化。但是,我不知道如何纠正这个问题。感谢您的帮助。
I have an editable iframe and I would like to insert text at the cursor location when the user clicks a button that is outside the iframe. I am trying to use the following code to insert the text:
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);
};
I think that this is failing because the focus changes when I go to click the button. However, I am not sure how to correct this. Thank you for your help.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您关于焦点转移影响代码插入的说法是正确的。
使用 jQuery 库,您可以将焦点转移回按钮单击绑定中的 iframe:
在纯 JavaScript 中,在执行 insertAtCursor() 之前转移焦点,如下所示:
You're correct about the focus shift affecting your code insert.
Using the jQuery library, you can shift focus back to the iframe in the button's click binding:
In pure javascript, shift focus before executing insertAtCursor() like so: