使用基于selection / key command
的 WYSIWYG 编辑器。效果很好除了......
使用所有其他键命令,它可以打开和关闭特定样式I,打击等。
使用execCommand('bold')
,它不会解开文本。这非常令人沮丧。每个浏览器都是一样的。
这是代码。
$('body').on('keydown', '.element_content, .element_content_subhead', function(e) {
if(e.ctrlKey){
//bold -- key 'B'
if(e.which == 66){
$sel = $.trim(document.getSelection().toString());
if($sel == ''){
alert('Please select some text to bold');
}
else{
document.execCommand('bold', false, null);
}
}
}
});
答案 0 :(得分:2)
这是我的答案。
因为我使用的是非标准字体(ClanWeb),所以b为粗体的类型对浏览器效果不佳。所以在我的CSS中我有b {font-family:ClanWeb-bold; font-weight:normal!important; }
这适用于粗体化类型,但如果标记行为不正常,则execCommand不会触发;在CSS中没有font-weight:bold。
所以这是我的代码解开它。
//bold -- key 'B'
if(e.which == 66){
$sel = $.trim(document.getSelection().toString());
var parentEle = window.getSelection().getRangeAt(0).commonAncestorContainer;
parentEle = parentEle.parentNode;
if($sel == ''){
alert('Please select some text to bold');
}
else if(parentEle.tagName == 'B'){
parentEle.id='unbold1';
$('#unbold1').contents().unwrap();
}
else{
document.execCommand('bold', false, null);
}
}
答案 1 :(得分:0)
在我的情况下,问题出现在'font:inherit;'引导样式。 摘要:如果您对“unbold”问题有疑问。或者' unitalic'使用 document.execComand 尝试删除所有css样式并检查您的编辑器 - 之后应该可以正常工作。