我想制作自己的文本编辑器。我正在尝试效仿其他几个成熟的编辑器,并使用隐藏<textarea>
和可见的<iframe>
组合。
我在键入<iframe>
. 我可以让 execCommand 在contenteditable <div>
上工作,例如,使文本BOLD但在<iframe>
.
这是我的 HTML:
<html>
<button type="button" class="btn btn-bold">bold</button>
<textarea id="input" name="input" style="display: none;">Start typing..</textarea>
<iframe frameborder="0" src="javascript:true;" style=""> </iframe>
</html>
这是我的 JavaScript:
$(function() {
var currentBtn;
$("#input").focus(function() {
currentBtn = this;
});
$(".btn").on( 'click', '.btn-bold', function(){
var $this=$(this);
if($this.hasClass("btn-bold")){ document.execCommand('bold', false, null);}
$(currentBtn).contents().focus();
});
});
我知道我需要对 iframe 文档而不是父文档执行 execCommand,但只是不确定如何执行此操作。目前,此代码不允许我键入 iframe,因此无法测试粗体按钮的效果。
任何想法将不胜感激!