安静
PHP技术博客

140214 discuz pasteHTML is not a function

discuz发表文章的时候,editor.js触发关于表情插入点击会报错 pasteHTML is not a function,会在ie9,firefox中出现。

网上查了下x3 x3.1 都有类似问题不过在过去的补丁里面discuz已经修复了。

例如:http://www.discuz.net/thread-3480872-1-1.html

不过可能有一些公司是不会随着discuz版本而升级,有些BUG比较难查,类似这个。

修复方法:

//修改 static/js/editor.js中

function insertText(text, movestart, moveend, select, sel) {
        checkFocus();
        if(wysiwyg) {
                try {
                        var sel = editdoc.getSelection();
                        if(!sel || sel.type.toString().toLowerCase() == 'none'){
                        editdoc.getElementsByTagName('body')[0].focus();
                         }
                        var range = sel.getRangeAt(0);
                        if(range && range.insertNode) {
                                range.deleteContents();
                        }
                        var frag = range.createContextualFragment(text);
                        var lnode = frag.lastChild;
                        range.insertNode(frag);
                        range.setEndAfter(lnode);
                        range.setStartAfter(lnode);
                        sel.removeAllRanges();
                        sel.addRange(range);
            }...

//修改为:
function insertText(text, movestart, moveend, select, sel) {
	checkFocus();
	if(wysiwyg) {
		try {
			var sel = editdoc.getSelection();
			var range = sel.getRangeAt(0);
			if(range && range.insertNode) {
				range.deleteContents();
			}
			var frag = range.createContextualFragment(text);
			var lnode = frag.lastChild;
			range.insertNode(frag);
			range.setEndAfter(lnode);
			range.setStartAfter(lnode);
			sel.removeAllRanges();
			sel.addRange(range);
		}...
赞(0) 打赏
未经允许不得转载:AJ's Blog » 140214 discuz pasteHTML is not a function
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏