Ace编辑器出现XXXXXXX #132
This commit is contained in:
1 parent
6fba2a6416
commit
fcbc23e964
2 files changed
+86
-54
No files matched your search
Vendored
+1
-1
@@ -1 +1 @@
|
|||||||
function editorMode(){this.writingHash="writing";this.normalHash="normal";this.isWritingMode=location.hash.indexOf(this.writingHash)>=0;this.toggleA=null}editorMode.prototype.toggleAText=function(isWriting){var self=this;setTimeout(function(){var toggleA=$(".toggle-editor-mode a");var toggleSpan=$(".toggle-editor-mode span");if(isWriting){toggleA.attr("href","#"+self.normalHash);toggleSpan.text(getMsg("normalMode"))}else{toggleA.attr("href","#"+self.writingHash);toggleSpan.text(getMsg("writingMode"))}},0)};editorMode.prototype.isWriting=function(hash){return hash.indexOf(this.writingHash)>=0};editorMode.prototype.init=function(){this.changeMode(this.isWritingMode);var self=this;$(".toggle-editor-mode").click(function(e){e.preventDefault();saveBookmark();var $a=$(this).find("a");var isWriting=self.isWriting($a.attr("href"));self.changeMode(isWriting);if(isWriting){setHash("m",self.writingHash)}else{setHash("m",self.normalHash)}restoreBookmark()})};editorMode.prototype.changeMode=function(isWritingMode){this.toggleAText(isWritingMode);if(isWritingMode){this.writtingMode()}else{this.normalMode()}$("#moreBtn i").removeClass("fa-angle-up").addClass("fa-angle-down")};editorMode.prototype.resizeEditor=function(){setTimeout(function(){resizeEditor()},10);setTimeout(function(){resizeEditor()},20);setTimeout(function(){resizeEditor()},500)};editorMode.prototype.normalMode=function(){var $c=$("#editorContent_ifr").contents();$c.contents().find("#writtingMode").remove();$c.contents().find('link[href$="editor-writting-mode.css"]').remove();$("#noteItemListWrap, #notesAndSort").show();$("#noteList").unbind("mouseenter").unbind("mouseleave");var theme=UserInfo.Theme||"default";theme+=".css";$("#themeLink").attr("href","/css/theme/"+theme);$("#mceToolbar").css("height","30px");this.resizeEditor();$("#noteList").width(UserInfo.NoteListWidth);$("#note").css("left",UserInfo.NoteListWidth)};editorMode.prototype.writtingMode=function(){$("#themeLink").attr("href","/css/theme/writting-overwrite.css");setTimeout(function(){var $c=$("#editorContent_ifr").contents();$c.contents().find("head").append('<link type="text/css" rel="stylesheet" href="/css/editor/editor-writting-mode.css" id="writtingMode">')},0);$("#noteItemListWrap, #notesAndSort").fadeOut();$("#noteList").hover(function(){$("#noteItemListWrap, #notesAndSort").fadeIn()},function(){$("#noteItemListWrap, #notesAndSort").fadeOut()});$("#mceToolbar").css("height","40px");this.resizeEditor();$("#noteList").width(250);$("#note").css("left",0)};editorMode.prototype.getWritingCss=function(){if(this.isWritingMode){return["/css/editor/editor-writting-mode.css"]}return[]};var em=new editorMode;var Resize={lineMove:false,mdLineMove:false,target:null,leftNotebook:$("#leftNotebook"),notebookSplitter:$("#notebookSplitter"),noteList:$("#noteList"),noteAndEditor:$("#noteAndEditor"),noteSplitter:$("#noteSplitter"),note:$("#note"),body:$("body"),leftColumn:$("#left-column"),rightColumn:$("#right-column"),mdSplitter:$("#mdSplitter2"),init:function(){var self=this;self.initEvent()},initEvent:function(){var self=this;$(".noteSplit").bind("mousedown",function(event){event.preventDefault();self.lineMove=true;$(this).css("background-color","#ccc");self.target=$(this).attr("id");$("#noteMask").css("z-index",99999)});self.mdSplitter.bind("mousedown",function(event){event.preventDefault();if($(this).hasClass("open")){self.mdLineMove=true}});self.body.bind("mousemove",function(event){if(self.lineMove){event.preventDefault();self.resize3Columns(event)}else if(self.mdLineMove){event.preventDefault();self.resizeMdColumns(event)}});self.body.bind("mouseup",function(event){self.stopResize();$("#noteMask").css("z-index",-1)});var everLeftWidth;$(".layout-toggler-preview").click(function(){var $t=$(this);var $p=self.leftColumn.parent();if($t.hasClass("open")){var totalWidth=$p.width();var minRightWidth=22;var leftWidth=totalWidth-minRightWidth;everLeftWidth=self.leftColumn.width();self.leftColumn.width(leftWidth);self.rightColumn.css("left","auto").width(minRightWidth);$t.removeClass("open");self.rightColumn.find(".layout-resizer").removeClass("open");$(".preview-container").hide()}else{$t.addClass("open");self.rightColumn.find(".layout-resizer").addClass("open");self.leftColumn.width(everLeftWidth);$(".preview-container").show();self.rightColumn.css("left",everLeftWidth).width("auto");if(MD){MD.onResize()}}})},stopResize:function(){var self=this;if(self.lineMove||self.mdLineMove){ajaxGet("/user/updateColumnWidth",{mdEditorWidth:UserInfo.MdEditorWidth,notebookWidth:UserInfo.NotebookWidth,noteListWidth:UserInfo.NoteListWidth},function(){})}self.lineMove=false;self.mdLineMove=false;$(".noteSplit").css("background","none");self.mdSplitter.css("background","none")},set3ColumnsWidth:function(notebookWidth,noteListWidth){var self=this;if(notebookWidth<150||noteListWidth<100){return}var noteWidth=self.body.width()-notebookWidth-noteListWidth;if(noteWidth<400){return}self.leftNotebook.width(notebookWidth);self.nLine truncated
|
function editorMode(){this.writingHash="writing";this.normalHash="normal";this.isWritingMode=location.hash.indexOf(this.writingHash)>=0;this.toggleA=null}editorMode.prototype.toggleAText=function(isWriting){var self=this;setTimeout(function(){var toggleA=$(".toggle-editor-mode a");var toggleSpan=$(".toggle-editor-mode span");if(isWriting){toggleA.attr("href","#"+self.normalHash);toggleSpan.text(getMsg("normalMode"))}else{toggleA.attr("href","#"+self.writingHash);toggleSpan.text(getMsg("writingMode"))}},0)};editorMode.prototype.isWriting=function(hash){return hash.indexOf(this.writingHash)>=0};editorMode.prototype.init=function(){this.changeMode(this.isWritingMode);var self=this;$(".toggle-editor-mode").click(function(e){e.preventDefault();saveBookmark();var $a=$(this).find("a");var isWriting=self.isWriting($a.attr("href"));self.changeMode(isWriting);if(isWriting){setHash("m",self.writingHash)}else{setHash("m",self.normalHash)}restoreBookmark()})};editorMode.prototype.changeMode=function(isWritingMode){this.toggleAText(isWritingMode);if(isWritingMode){this.writtingMode()}else{this.normalMode()}$("#moreBtn i").removeClass("fa-angle-up").addClass("fa-angle-down")};editorMode.prototype.resizeEditor=function(){setTimeout(function(){resizeEditor()},10);setTimeout(function(){resizeEditor()},20);setTimeout(function(){resizeEditor()},500)};editorMode.prototype.normalMode=function(){var $c=$("#editorContent_ifr").contents();$c.contents().find("#writtingMode").remove();$c.contents().find('link[href$="editor-writting-mode.css"]').remove();$("#noteItemListWrap, #notesAndSort").show();$("#noteList").unbind("mouseenter").unbind("mouseleave");var theme=UserInfo.Theme||"default";theme+=".css";$("#themeLink").attr("href","/css/theme/"+theme);$("#mceToolbar").css("height","30px");this.resizeEditor();$("#noteList").width(UserInfo.NoteListWidth);$("#note").css("left",UserInfo.NoteListWidth)};editorMode.prototype.writtingMode=function(){$("#themeLink").attr("href","/css/theme/writting-overwrite.css");setTimeout(function(){var $c=$("#editorContent_ifr").contents();$c.contents().find("head").append('<link type="text/css" rel="stylesheet" href="/css/editor/editor-writting-mode.css" id="writtingMode">')},0);$("#noteItemListWrap, #notesAndSort").fadeOut();$("#noteList").hover(function(){$("#noteItemListWrap, #notesAndSort").fadeIn()},function(){$("#noteItemListWrap, #notesAndSort").fadeOut()});$("#mceToolbar").css("height","40px");this.resizeEditor();$("#noteList").width(250);$("#note").css("left",0)};editorMode.prototype.getWritingCss=function(){if(this.isWritingMode){return["/css/editor/editor-writting-mode.css"]}return[]};var em=new editorMode;var Resize={lineMove:false,mdLineMove:false,target:null,leftNotebook:$("#leftNotebook"),notebookSplitter:$("#notebookSplitter"),noteList:$("#noteList"),noteAndEditor:$("#noteAndEditor"),noteSplitter:$("#noteSplitter"),note:$("#note"),body:$("body"),leftColumn:$("#left-column"),rightColumn:$("#right-column"),mdSplitter:$("#mdSplitter2"),init:function(){var self=this;self.initEvent()},initEvent:function(){var self=this;$(".noteSplit").bind("mousedown",function(event){event.preventDefault();self.lineMove=true;$(this).css("background-color","#ccc");self.target=$(this).attr("id");$("#noteMask").css("z-index",99999)});self.mdSplitter.bind("mousedown",function(event){event.preventDefault();if($(this).hasClass("open")){self.mdLineMove=true}});self.body.bind("mousemove",function(event){if(self.lineMove){event.preventDefault();self.resize3Columns(event)}else if(self.mdLineMove){event.preventDefault();self.resizeMdColumns(event)}});self.body.bind("mouseup",function(event){self.stopResize();$("#noteMask").css("z-index",-1)});var everLeftWidth;$(".layout-toggler-preview").click(function(){var $t=$(this);var $p=self.leftColumn.parent();if($t.hasClass("open")){var totalWidth=$p.width();var minRightWidth=22;var leftWidth=totalWidth-minRightWidth;everLeftWidth=self.leftColumn.width();self.leftColumn.width(leftWidth);self.rightColumn.css("left","auto").width(minRightWidth);$t.removeClass("open");self.rightColumn.find(".layout-resizer").removeClass("open");$(".preview-container").hide()}else{$t.addClass("open");self.rightColumn.find(".layout-resizer").addClass("open");self.leftColumn.width(everLeftWidth);$(".preview-container").show();self.rightColumn.css("left",everLeftWidth).width("auto");if(MD){MD.onResize()}}})},stopResize:function(){var self=this;if(self.lineMove||self.mdLineMove){ajaxGet("/user/updateColumnWidth",{mdEditorWidth:UserInfo.MdEditorWidth,notebookWidth:UserInfo.NotebookWidth,noteListWidth:UserInfo.NoteListWidth},function(){})}self.lineMove=false;self.mdLineMove=false;$(".noteSplit").css("background","none");self.mdSplitter.css("background","none")},set3ColumnsWidth:function(notebookWidth,noteListWidth){var self=this;if(notebookWidth<150||noteListWidth<100){return}var noteWidth=self.body.width()-notebookWidth-noteListWidth;if(noteWidth<400){return}self.leftNotebook.width(notebookWidth);self.nLine truncated
|
||||||
+85
-53
@@ -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,61 +974,91 @@ LeaAce = {
|
|||||||
if(!force && !me.canAndIsAce()) {
|
if(!force && !me.canAndIsAce()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
me.disableAddHistory();
|
|
||||||
var $pre = $('#' + id);
|
var $pre = $('#' + id);
|
||||||
$pre.find('.toggle-raw').remove();
|
if($pre.length == 0) {
|
||||||
var preHtml = $pre.html();
|
return;
|
||||||
|
|
||||||
$pre.removeClass('ace-to-pre');
|
|
||||||
$pre.attr("contenteditable", false); // ? 避免tinymce编辑
|
|
||||||
var aceEditor = ace.edit(id);
|
|
||||||
aceEditor.setTheme("ace/theme/tomorrow");
|
|
||||||
|
|
||||||
var brush = me.getPreBrush($pre);
|
|
||||||
var b = "";
|
|
||||||
if(brush) {
|
|
||||||
try {
|
|
||||||
b = brush.split(':')[1];
|
|
||||||
} catch(e) {}
|
|
||||||
}
|
}
|
||||||
b = b || "javascript";
|
var rawCode = $pre.html(); // 原生code
|
||||||
aceEditor.session.setMode("ace/mode/" + b);
|
try {
|
||||||
aceEditor.getSession().setUseWorker(false); // 不用语法检查
|
me.disableAddHistory();
|
||||||
aceEditor.setOption("showInvisibles", false); // 不显示空格, 没用
|
|
||||||
aceEditor.setOption("wrap", "free");
|
// 本身就有格式的, 防止之前有格式的显示为<span>(ace下)
|
||||||
aceEditor.setShowInvisibles(false);
|
if($pre.attr('style') || $pre.html().indexOf('style') != -1) {
|
||||||
aceEditor.setAutoScrollEditorIntoView(true);
|
$pre.html($pre.text());
|
||||||
aceEditor.setOption("maxLines", 10000);
|
// return;
|
||||||
aceEditor.commands.addCommand({
|
}
|
||||||
name: "undo",
|
$pre.find('.toggle-raw').remove();
|
||||||
bindKey: {win: "Ctrl-z", mac: "Command-z"},
|
var preHtml = $pre.html();
|
||||||
exec: function(editor) {
|
|
||||||
var undoManager = editor.getSession().getUndoManager();
|
$pre.removeClass('ace-to-pre');
|
||||||
if(undoManager.hasUndo()){
|
$pre.attr("contenteditable", false); // ? 避免tinymce编辑
|
||||||
undoManager.undo();
|
var aceEditor = ace.edit(id);
|
||||||
} else {
|
|
||||||
undoManager.reset();
|
aceEditor.setTheme("ace/theme/tomorrow");
|
||||||
tinymce.activeEditor.undoManager.undo();
|
|
||||||
}
|
var brush = me.getPreBrush($pre);
|
||||||
}
|
var b = "";
|
||||||
});
|
if(brush) {
|
||||||
this._aceEditors[id] = aceEditor;
|
try {
|
||||||
if(val) {
|
b = brush.split(':')[1];
|
||||||
aceEditor.setValue(val);
|
} catch(e) {}
|
||||||
// 不要选择代码
|
}
|
||||||
// TODO
|
b = b || "javascript";
|
||||||
} else {
|
aceEditor.session.setMode("ace/mode/" + b);
|
||||||
// 防止 <pre><div>xx</div></pre> 这里的<div>消失
|
aceEditor.session.setOption("useWorker", false); // 不用语法检查
|
||||||
// preHtml = preHtml.replace('/ /g', ' '); // 以前是把' ' 全换成了
|
// retina
|
||||||
// aceEditor.setValue(preHtml);
|
if(window.devicePixelRatio == 2) {
|
||||||
// 全不选
|
aceEditor.setFontSize("12px");
|
||||||
// aceEditor.selection.clearSelection();
|
}
|
||||||
|
else {
|
||||||
|
aceEditor.setFontSize("14px");
|
||||||
|
}
|
||||||
|
aceEditor.getSession().setUseWorker(false); // 不用语法检查
|
||||||
|
aceEditor.setOption("showInvisibles", false); // 不显示空格, 没用
|
||||||
|
aceEditor.setShowInvisibles(false); // OK 不显示空格
|
||||||
|
aceEditor.setOption("wrap", "free");
|
||||||
|
aceEditor.setShowInvisibles(false);
|
||||||
|
aceEditor.setAutoScrollEditorIntoView(true);
|
||||||
|
aceEditor.setOption("maxLines", 10000);
|
||||||
|
aceEditor.commands.addCommand({
|
||||||
|
name: "undo",
|
||||||
|
bindKey: {win: "Ctrl-z", mac: "Command-z"},
|
||||||
|
exec: function(editor) {
|
||||||
|
var undoManager = editor.getSession().getUndoManager();
|
||||||
|
if(undoManager.hasUndo()){
|
||||||
|
undoManager.undo();
|
||||||
|
} else {
|
||||||
|
undoManager.reset();
|
||||||
|
tinymce.activeEditor.undoManager.undo();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
this._aceEditors[id] = aceEditor;
|
||||||
|
if(val) {
|
||||||
|
aceEditor.setValue(val);
|
||||||
|
// 不要选择代码
|
||||||
|
// TODO
|
||||||
|
} else {
|
||||||
|
// 防止 <pre><div>xx</div></pre> 这里的<div>消失
|
||||||
|
// preHtml = preHtml.replace('/ /g', ' '); // 以前是把' ' 全换成了
|
||||||
|
// aceEditor.setValue(preHtml);
|
||||||
|
// 全不选
|
||||||
|
// aceEditor.selection.clearSelection();
|
||||||
|
}
|
||||||
|
|
||||||
|
// XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
|
||||||
|
// "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
|
||||||
|
me.resetAddHistory();
|
||||||
|
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();
|
||||||
}
|
}
|
||||||
|
|
||||||
// XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
|
|
||||||
|
|
||||||
me.resetAddHistory();
|
|
||||||
return aceEditor;
|
|
||||||
},
|
},
|
||||||
clearIntervalForInitAce: null,
|
clearIntervalForInitAce: null,
|
||||||
initAceFromContent: function(editor) {
|
initAceFromContent: function(editor) {
|
||||||
|
|||||||
Reference in new issue
Block a user