我的WYSIWYG-Editor有问题,它适用于FF但不适用于Chrome :(
以下是代码:
$.fn.textEdit = function(){
return this.each(function(){
var $this = $(this), $div = $('<div class="textEdit"></div>');
var $buttonObserve = function(cmd,b,val){
document.execCommand('styleWithCSS', 0, false);
document.execCommand(cmd, b||false, val||null);
};
$this.before($div);
$this.attr({contentEditable:true})
$($div).append(
$('<div/>').addClass('textEditBold').text('F').attr('title','Fett')
.click(function(){ $buttonObserve('bold') })
).append(
$('<div/>').addClass('textEditItalics').text('K').attr('title','Kursiv')
.click(function(){ $buttonObserve('italic') })
).append(
$('<div/>').addClass('textEditUnderline transparent').text('_').attr('title','Unterstrich').css('background', 'url(data:image/gif;base64,R0lGODlhFgAWAKECAAAAAF9vj////////yH5BAEAAAIALAAAAAAWABYAAAIrlI+py+0Po5zUgAsEzvEeL4Ea15EiJJ5PSqJmuwKBEKgxVuXWtun+DwxCCgA7) no-repeat 0 1px')
.click(function(){ $buttonObserve('underline') })
).append(
$('<div/>').addClass('delete').text('Deactivate-Edit').attr('title','Stop-Edit')
.click(function(){ $this.parents('#page2').find('.editable').removeClass('editable').removeAttr('contentEditable');
$this.parents('#page2').find('.textEdit').remove('.textEdit'); })
);
});
};
如果用户点击p,div elemt等,此功能将被激活,它将创建4个按钮,用于制作文本:粗体,斜体,下划线,或删除按钮。
问题是:如果我选择文本并按下按钮,则没有任何反应,只需删除按钮即可。
我认为Chrome不接受我选择的文字。
我希望你们能帮助我! :)
答案 0 :(得分:0)
看起来已从Webkit中删除了execCommand()
支持。
QuirksMode甚至没有列出支持矩阵中的后续浏览器。
https://groups.google.com/a/chromium.org/forum/?fromgroups=#!topic/chromium-extensions/QytGD5gCREY
要获取所选文本,您可以使用此方法
How to replace selected text with html in a contenteditable element?