Ace编辑器出现XXXXXXX #132

This commit is contained in:
lealife
2015-05-06 23:54:10 +08:00
parent 6fba2a6416
commit fcbc23e964
2 changed files with 86 additions and 54 deletions

File diff suppressed because one or more lines are too long

View File

@ -465,6 +465,7 @@ function initEditor() {
// 初始化编辑器 // 初始化编辑器
tinymce.init({ tinymce.init({
inline: true, inline: true,
theme: 'leanote',
valid_children: "+pre[div|#text|p|span|textarea|i|b|strong]", // ace valid_children: "+pre[div|#text|p|span|textarea|i|b|strong]", // ace
/* /*
protect: [ protect: [
@ -480,7 +481,8 @@ function initEditor() {
// 为了把下拉菜单关闭 // 为了把下拉菜单关闭
ed.on("click", function(e) { ed.on("click", function(e) {
$("body").trigger("click"); // $("body").trigger("click");
// console.log(tinymce.activeEditor.selection.getNode());
}); });
}, },
@ -972,14 +974,26 @@ LeaAce = {
if(!force && !me.canAndIsAce()) { if(!force && !me.canAndIsAce()) {
return; return;
} }
me.disableAddHistory();
var $pre = $('#' + id); var $pre = $('#' + id);
if($pre.length == 0) {
return;
}
var rawCode = $pre.html(); // 原生code
try {
me.disableAddHistory();
// 本身就有格式的, 防止之前有格式的显示为<span>(ace下)
if($pre.attr('style') || $pre.html().indexOf('style') != -1) {
$pre.html($pre.text());
// return;
}
$pre.find('.toggle-raw').remove(); $pre.find('.toggle-raw').remove();
var preHtml = $pre.html(); var preHtml = $pre.html();
$pre.removeClass('ace-to-pre'); $pre.removeClass('ace-to-pre');
$pre.attr("contenteditable", false); // ? 避免tinymce编辑 $pre.attr("contenteditable", false); // ? 避免tinymce编辑
var aceEditor = ace.edit(id); var aceEditor = ace.edit(id);
aceEditor.setTheme("ace/theme/tomorrow"); aceEditor.setTheme("ace/theme/tomorrow");
var brush = me.getPreBrush($pre); var brush = me.getPreBrush($pre);
@ -991,8 +1005,17 @@ LeaAce = {
} }
b = b || "javascript"; b = b || "javascript";
aceEditor.session.setMode("ace/mode/" + b); aceEditor.session.setMode("ace/mode/" + b);
aceEditor.session.setOption("useWorker", false); // 不用语法检查
// retina
if(window.devicePixelRatio == 2) {
aceEditor.setFontSize("12px");
}
else {
aceEditor.setFontSize("14px");
}
aceEditor.getSession().setUseWorker(false); // 不用语法检查 aceEditor.getSession().setUseWorker(false); // 不用语法检查
aceEditor.setOption("showInvisibles", false); // 不显示空格, 没用 aceEditor.setOption("showInvisibles", false); // 不显示空格, 没用
aceEditor.setShowInvisibles(false); // OK 不显示空格
aceEditor.setOption("wrap", "free"); aceEditor.setOption("wrap", "free");
aceEditor.setShowInvisibles(false); aceEditor.setShowInvisibles(false);
aceEditor.setAutoScrollEditorIntoView(true); aceEditor.setAutoScrollEditorIntoView(true);
@ -1024,9 +1047,18 @@ LeaAce = {
} }
// XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX // XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
// "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
me.resetAddHistory(); me.resetAddHistory();
return aceEditor; return aceEditor;
} catch(e) {
// 当有错误时, 会有XXXXX的形式, 此时不要ace, 直接原生的!!!
console.error('ace error!!!!');
console.error(e);
$pre.attr("contenteditable", true);
$pre.removeClass('ace-tomorrow ace_editor ace-tm');
$pre.html(rawCode);
me.resetAddHistory();
}
}, },
clearIntervalForInitAce: null, clearIntervalForInitAce: null,
initAceFromContent: function(editor) { initAceFromContent: function(editor) {