javascript - document.execCommand 仅适用于按钮而不适用于链接?

标签 javascript jquery css rich-text-editor

我有以下代码:

<div contenteditable="true" style="height:100px;width:100px;border:1px solid; " class="editor"></div>
<a class='bold' style="height:10px;width:10px;">B</a> 

$(function(){
    $("a.bold").on("click",function(){
        document.execCommand('bold',false,true);
    }) 
})

当我点击 B 链接时,contenteditable div 中的内容没有被放大。从这里的jsfiddle可以看出http://jsfiddle.net/JeremyHuang_Stern/487YF/

但是,当我使用按钮而不是链接来做同样的事情时,问题就消失了。从这个 fiddle 可以看出 http://jsfiddle.net/JeremyHuang_Stern/2QG26/

是什么造成了这里的差异?

最佳答案

该链接窃取了 mousedown 上文本的选择。防止默认行为以避免这种情况。

$('a.bold').on('mousedown', function(event) {
    event.preventDefault();
    document.execCommand('bold', false, false);
});

关于javascript - document.execCommand 仅适用于按钮而不适用于链接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20831132/

相关文章:

javascript - react native : Dynamically print Text in multiple color

javascript - 算法连接四个javascript

javascript - jQuery:将文件类型类添加到任何文件类型的链接

javascript - mailto函数显示URL中的所有内容

javascript - 解析之前更改 Meteor.Collection

javascript - 如何停止 KnockOut.js 中的多重绑定(bind)

javascript - 如何通过幻灯片查看事件箭头(下一个/上一个)?

javascript - 下拉动画定位

css - 如何覆盖 wp-includes/css 目录中的默认 .css

javascript - 文档在 dom 操作后准备就绪