diff --git a/dist/bundle.js b/dist/bundle.js index 4c571c2f4..94af97ba8 100644 --- a/dist/bundle.js +++ b/dist/bundle.js @@ -83377,6 +83377,8 @@ BI.shortcut("bi.rich_editor_text_toolbar", BI.RichEditorTextToolbar);/** }, setValue: function (v) { + v = v || ""; + v = v.startWith("
") ? v : "
" + v + "
"; this.instance.setContent(v); }, @@ -83400,6 +83402,7 @@ BI.shortcut("bi.rich_editor_text_toolbar", BI.RichEditorTextToolbar);/** BI.NicEditor.EVENT_BLUR = "blur"; BI.NicEditor.EVENT_FOCUS = "focus"; BI.NicEditor.EVENT_KEYDOWN = "keydown"; + BI.NicEditor.EVENT_KEYUP = "keyup"; BI.shortcut("bi.nic_editor", BI.NicEditor); var prefix = "niceditor-"; @@ -83409,6 +83412,8 @@ BI.shortcut("bi.rich_editor_text_toolbar", BI.RichEditorTextToolbar);/** _init: function () { nicEditorInstance.superclass._init.apply(this, arguments); var o = this.options; + var initValue = o.value || "
"; + initValue = initValue.startWith("
") ? initValue : "
" + initValue + "
"; this.ne = this.options.ne; this.elm = BI.createWidget({ type: "bi.layout", @@ -83418,8 +83423,9 @@ BI.shortcut("bi.rich_editor_text_toolbar", BI.RichEditorTextToolbar);/** this.elm.element.css({ minHeight: BI.isNumber(o.height) ? (o.height - 8) + "px" : o.height, outline: "none", - padding: "0 10px" - }).html(o.value); + padding: "0 10px", + wordWrap: "break-word" + }).html(initValue); if(o.readOnly) { this.elm.element.attr("contentEditable", false); @@ -83453,8 +83459,7 @@ BI.shortcut("bi.rich_editor_text_toolbar", BI.RichEditorTextToolbar);/** } this.instanceDoc = document.defaultView; this.elm.element.on("mousedown", BI.bind(this.selected, this)); - this.elm.element.on("keyup", BI.bind(this.keyDown, this)); - // this.elm.element.on("keydown", BI.bind(this.keyDown, this)); + this.elm.element.on("keydown", BI.bind(this.keyDown, this)); this.elm.element.on("focus", BI.bind(this.selected, this)); this.elm.element.on("blur", BI.bind(this.blur, this)); this.elm.element.on("keyup", BI.bind(this.selected, this)); @@ -83566,6 +83571,13 @@ BI.shortcut("bi.rich_editor_text_toolbar", BI.RichEditorTextToolbar);/** }, keyDown: function (e, t) { + if (e.keyCode === 8) { + var html = this.elm.element.html().toLowerCase().trim(); + if (html === "

" || html === "
") { + e.preventDefault() + return; + } + } this.ne.fireEvent("keydown", e); }, @@ -83587,6 +83599,19 @@ BI.shortcut("bi.rich_editor_text_toolbar", BI.RichEditorTextToolbar);/** this.isFocused = true; this.elm.element.addClass(prefix + "selected"); } + this.ne.fireEvent("keyup", e); + + if (e.keyCode !== 8) { + return; + } + var newLine; + var html = this.elm.element.html().toLowerCase().trim(); + if (!html || html === '
') { + newLine = $("
"); + this.elm.element.html(''); + this.elm.element.append(newLine); + this.setFocus(newLine[0]); + } // return false; }, @@ -83668,6 +83693,38 @@ BI.shortcut("bi.rich_editor_text_toolbar", BI.RichEditorTextToolbar);/** document.execCommand(cmd, false, args); }, + initSelection: function (newLine) { + var newLineHtml = this._getNewLine(); + var el = this.elm.element; + var children = el.children(); + if (!children.length) { + // 如果编辑器区域无内容,添加一个空行,重新设置选区 + el.append(newLineHtml); + this.initSelection(); + return; + } + + var last = children.last(); + + if (newLine) { + // 新增一个空行 + var html = last.html().toLowerCase(); + var nodeName = last.nodeName; + if ((html !== "
" && html !== "") || nodeName !== "DIV") { + // 最后一个元素不是空行,添加一个空行,重新设置选区 + el.append(newLineHtml); + this.initSelection(); + return; + } + } + + this.setFocus(last[0]); + }, + + _getNewLine: function () { + return "

"; + }, + _isChildOf: function(child, parent) { var parentNode; if(child && parent) { @@ -83680,6 +83737,13 @@ BI.shortcut("bi.rich_editor_text_toolbar", BI.RichEditorTextToolbar);/** } } return false; + }, + + _isIE11Below: function() { + if (!BI.isIE()) { + return false; + } + return BI.getIEVersion() < 11; } }); }()); diff --git a/dist/case.js b/dist/case.js index f7d1b71c8..198c26331 100644 --- a/dist/case.js +++ b/dist/case.js @@ -10821,6 +10821,8 @@ BI.shortcut("bi.rich_editor_text_toolbar", BI.RichEditorTextToolbar);/** }, setValue: function (v) { + v = v || ""; + v = v.startWith("
") ? v : "
" + v + "
"; this.instance.setContent(v); }, @@ -10844,6 +10846,7 @@ BI.shortcut("bi.rich_editor_text_toolbar", BI.RichEditorTextToolbar);/** BI.NicEditor.EVENT_BLUR = "blur"; BI.NicEditor.EVENT_FOCUS = "focus"; BI.NicEditor.EVENT_KEYDOWN = "keydown"; + BI.NicEditor.EVENT_KEYUP = "keyup"; BI.shortcut("bi.nic_editor", BI.NicEditor); var prefix = "niceditor-"; @@ -10853,6 +10856,8 @@ BI.shortcut("bi.rich_editor_text_toolbar", BI.RichEditorTextToolbar);/** _init: function () { nicEditorInstance.superclass._init.apply(this, arguments); var o = this.options; + var initValue = o.value || "
"; + initValue = initValue.startWith("
") ? initValue : "
" + initValue + "
"; this.ne = this.options.ne; this.elm = BI.createWidget({ type: "bi.layout", @@ -10862,8 +10867,9 @@ BI.shortcut("bi.rich_editor_text_toolbar", BI.RichEditorTextToolbar);/** this.elm.element.css({ minHeight: BI.isNumber(o.height) ? (o.height - 8) + "px" : o.height, outline: "none", - padding: "0 10px" - }).html(o.value); + padding: "0 10px", + wordWrap: "break-word" + }).html(initValue); if(o.readOnly) { this.elm.element.attr("contentEditable", false); @@ -10897,8 +10903,7 @@ BI.shortcut("bi.rich_editor_text_toolbar", BI.RichEditorTextToolbar);/** } this.instanceDoc = document.defaultView; this.elm.element.on("mousedown", BI.bind(this.selected, this)); - this.elm.element.on("keyup", BI.bind(this.keyDown, this)); - // this.elm.element.on("keydown", BI.bind(this.keyDown, this)); + this.elm.element.on("keydown", BI.bind(this.keyDown, this)); this.elm.element.on("focus", BI.bind(this.selected, this)); this.elm.element.on("blur", BI.bind(this.blur, this)); this.elm.element.on("keyup", BI.bind(this.selected, this)); @@ -11010,6 +11015,13 @@ BI.shortcut("bi.rich_editor_text_toolbar", BI.RichEditorTextToolbar);/** }, keyDown: function (e, t) { + if (e.keyCode === 8) { + var html = this.elm.element.html().toLowerCase().trim(); + if (html === "

" || html === "
") { + e.preventDefault() + return; + } + } this.ne.fireEvent("keydown", e); }, @@ -11031,6 +11043,19 @@ BI.shortcut("bi.rich_editor_text_toolbar", BI.RichEditorTextToolbar);/** this.isFocused = true; this.elm.element.addClass(prefix + "selected"); } + this.ne.fireEvent("keyup", e); + + if (e.keyCode !== 8) { + return; + } + var newLine; + var html = this.elm.element.html().toLowerCase().trim(); + if (!html || html === '
') { + newLine = $("
"); + this.elm.element.html(''); + this.elm.element.append(newLine); + this.setFocus(newLine[0]); + } // return false; }, @@ -11112,6 +11137,38 @@ BI.shortcut("bi.rich_editor_text_toolbar", BI.RichEditorTextToolbar);/** document.execCommand(cmd, false, args); }, + initSelection: function (newLine) { + var newLineHtml = this._getNewLine(); + var el = this.elm.element; + var children = el.children(); + if (!children.length) { + // 如果编辑器区域无内容,添加一个空行,重新设置选区 + el.append(newLineHtml); + this.initSelection(); + return; + } + + var last = children.last(); + + if (newLine) { + // 新增一个空行 + var html = last.html().toLowerCase(); + var nodeName = last.nodeName; + if ((html !== "
" && html !== "") || nodeName !== "DIV") { + // 最后一个元素不是空行,添加一个空行,重新设置选区 + el.append(newLineHtml); + this.initSelection(); + return; + } + } + + this.setFocus(last[0]); + }, + + _getNewLine: function () { + return "

"; + }, + _isChildOf: function(child, parent) { var parentNode; if(child && parent) { @@ -11124,6 +11181,13 @@ BI.shortcut("bi.rich_editor_text_toolbar", BI.RichEditorTextToolbar);/** } } return false; + }, + + _isIE11Below: function() { + if (!BI.isIE()) { + return false; + } + return BI.getIEVersion() < 11; } }); }()); diff --git a/dist/fineui.js b/dist/fineui.js index c01193680..e95854888 100644 --- a/dist/fineui.js +++ b/dist/fineui.js @@ -83626,6 +83626,8 @@ BI.shortcut("bi.rich_editor_text_toolbar", BI.RichEditorTextToolbar);/** }, setValue: function (v) { + v = v || ""; + v = v.startWith("
") ? v : "
" + v + "
"; this.instance.setContent(v); }, @@ -83649,6 +83651,7 @@ BI.shortcut("bi.rich_editor_text_toolbar", BI.RichEditorTextToolbar);/** BI.NicEditor.EVENT_BLUR = "blur"; BI.NicEditor.EVENT_FOCUS = "focus"; BI.NicEditor.EVENT_KEYDOWN = "keydown"; + BI.NicEditor.EVENT_KEYUP = "keyup"; BI.shortcut("bi.nic_editor", BI.NicEditor); var prefix = "niceditor-"; @@ -83658,6 +83661,8 @@ BI.shortcut("bi.rich_editor_text_toolbar", BI.RichEditorTextToolbar);/** _init: function () { nicEditorInstance.superclass._init.apply(this, arguments); var o = this.options; + var initValue = o.value || "
"; + initValue = initValue.startWith("
") ? initValue : "
" + initValue + "
"; this.ne = this.options.ne; this.elm = BI.createWidget({ type: "bi.layout", @@ -83667,8 +83672,9 @@ BI.shortcut("bi.rich_editor_text_toolbar", BI.RichEditorTextToolbar);/** this.elm.element.css({ minHeight: BI.isNumber(o.height) ? (o.height - 8) + "px" : o.height, outline: "none", - padding: "0 10px" - }).html(o.value); + padding: "0 10px", + wordWrap: "break-word" + }).html(initValue); if(o.readOnly) { this.elm.element.attr("contentEditable", false); @@ -83702,8 +83708,7 @@ BI.shortcut("bi.rich_editor_text_toolbar", BI.RichEditorTextToolbar);/** } this.instanceDoc = document.defaultView; this.elm.element.on("mousedown", BI.bind(this.selected, this)); - this.elm.element.on("keyup", BI.bind(this.keyDown, this)); - // this.elm.element.on("keydown", BI.bind(this.keyDown, this)); + this.elm.element.on("keydown", BI.bind(this.keyDown, this)); this.elm.element.on("focus", BI.bind(this.selected, this)); this.elm.element.on("blur", BI.bind(this.blur, this)); this.elm.element.on("keyup", BI.bind(this.selected, this)); @@ -83815,6 +83820,13 @@ BI.shortcut("bi.rich_editor_text_toolbar", BI.RichEditorTextToolbar);/** }, keyDown: function (e, t) { + if (e.keyCode === 8) { + var html = this.elm.element.html().toLowerCase().trim(); + if (html === "

" || html === "
") { + e.preventDefault() + return; + } + } this.ne.fireEvent("keydown", e); }, @@ -83836,6 +83848,19 @@ BI.shortcut("bi.rich_editor_text_toolbar", BI.RichEditorTextToolbar);/** this.isFocused = true; this.elm.element.addClass(prefix + "selected"); } + this.ne.fireEvent("keyup", e); + + if (e.keyCode !== 8) { + return; + } + var newLine; + var html = this.elm.element.html().toLowerCase().trim(); + if (!html || html === '
') { + newLine = $("
"); + this.elm.element.html(''); + this.elm.element.append(newLine); + this.setFocus(newLine[0]); + } // return false; }, @@ -83917,6 +83942,38 @@ BI.shortcut("bi.rich_editor_text_toolbar", BI.RichEditorTextToolbar);/** document.execCommand(cmd, false, args); }, + initSelection: function (newLine) { + var newLineHtml = this._getNewLine(); + var el = this.elm.element; + var children = el.children(); + if (!children.length) { + // 如果编辑器区域无内容,添加一个空行,重新设置选区 + el.append(newLineHtml); + this.initSelection(); + return; + } + + var last = children.last(); + + if (newLine) { + // 新增一个空行 + var html = last.html().toLowerCase(); + var nodeName = last.nodeName; + if ((html !== "
" && html !== "") || nodeName !== "DIV") { + // 最后一个元素不是空行,添加一个空行,重新设置选区 + el.append(newLineHtml); + this.initSelection(); + return; + } + } + + this.setFocus(last[0]); + }, + + _getNewLine: function () { + return "

"; + }, + _isChildOf: function(child, parent) { var parentNode; if(child && parent) { @@ -83929,6 +83986,13 @@ BI.shortcut("bi.rich_editor_text_toolbar", BI.RichEditorTextToolbar);/** } } return false; + }, + + _isIE11Below: function() { + if (!BI.isIE()) { + return false; + } + return BI.getIEVersion() < 11; } }); }()); diff --git a/src/case/richeditor/niceditor/niceditor.js b/src/case/richeditor/niceditor/niceditor.js index 4d2bd97db..64dde7209 100644 --- a/src/case/richeditor/niceditor/niceditor.js +++ b/src/case/richeditor/niceditor/niceditor.js @@ -85,6 +85,8 @@ }, setValue: function (v) { + v = v || ""; + v = v.startWith("
") ? v : "
" + v + "
"; this.instance.setContent(v); }, @@ -108,6 +110,7 @@ BI.NicEditor.EVENT_BLUR = "blur"; BI.NicEditor.EVENT_FOCUS = "focus"; BI.NicEditor.EVENT_KEYDOWN = "keydown"; + BI.NicEditor.EVENT_KEYUP = "keyup"; BI.shortcut("bi.nic_editor", BI.NicEditor); var prefix = "niceditor-"; @@ -117,6 +120,8 @@ _init: function () { nicEditorInstance.superclass._init.apply(this, arguments); var o = this.options; + var initValue = o.value || "
"; + initValue = initValue.startWith("
") ? initValue : "
" + initValue + "
"; this.ne = this.options.ne; this.elm = BI.createWidget({ type: "bi.layout", @@ -126,8 +131,9 @@ this.elm.element.css({ minHeight: BI.isNumber(o.height) ? (o.height - 8) + "px" : o.height, outline: "none", - padding: "0 10px" - }).html(o.value); + padding: "0 10px", + wordWrap: "break-word" + }).html(initValue); if(o.readOnly) { this.elm.element.attr("contentEditable", false); @@ -161,8 +167,7 @@ } this.instanceDoc = document.defaultView; this.elm.element.on("mousedown", BI.bind(this.selected, this)); - this.elm.element.on("keyup", BI.bind(this.keyDown, this)); - // this.elm.element.on("keydown", BI.bind(this.keyDown, this)); + this.elm.element.on("keydown", BI.bind(this.keyDown, this)); this.elm.element.on("focus", BI.bind(this.selected, this)); this.elm.element.on("blur", BI.bind(this.blur, this)); this.elm.element.on("keyup", BI.bind(this.selected, this)); @@ -274,6 +279,13 @@ }, keyDown: function (e, t) { + if (e.keyCode === 8) { + var html = this.elm.element.html().toLowerCase().trim(); + if (html === "

" || html === "
") { + e.preventDefault() + return; + } + } this.ne.fireEvent("keydown", e); }, @@ -295,6 +307,19 @@ this.isFocused = true; this.elm.element.addClass(prefix + "selected"); } + this.ne.fireEvent("keyup", e); + + if (e.keyCode !== 8) { + return; + } + var newLine; + var html = this.elm.element.html().toLowerCase().trim(); + if (!html || html === '
') { + newLine = $("
"); + this.elm.element.html(''); + this.elm.element.append(newLine); + this.setFocus(newLine[0]); + } // return false; }, @@ -376,6 +401,38 @@ document.execCommand(cmd, false, args); }, + initSelection: function (newLine) { + var newLineHtml = this._getNewLine(); + var el = this.elm.element; + var children = el.children(); + if (!children.length) { + // 如果编辑器区域无内容,添加一个空行,重新设置选区 + el.append(newLineHtml); + this.initSelection(); + return; + } + + var last = children.last(); + + if (newLine) { + // 新增一个空行 + var html = last.html().toLowerCase(); + var nodeName = last.nodeName; + if ((html !== "
" && html !== "") || nodeName !== "DIV") { + // 最后一个元素不是空行,添加一个空行,重新设置选区 + el.append(newLineHtml); + this.initSelection(); + return; + } + } + + this.setFocus(last[0]); + }, + + _getNewLine: function () { + return "

"; + }, + _isChildOf: function(child, parent) { var parentNode; if(child && parent) { @@ -388,6 +445,13 @@ } } return false; + }, + + _isIE11Below: function() { + if (!BI.isIE()) { + return false; + } + return BI.getIEVersion() < 11; } }); }());