Browse Source

Merge pull request #537 in VISUAL/fineui from ~FAY/fineui:master to master

* commit 'e6b5bfd5d31043fdbd6c2bc43e9fc7e5d688ffc4':
  update
  update
  update
  update
es6
imp 7 years ago
parent
commit
3ad43e9a6c
  1. 32
      src/case/richeditor/niceditor/niceditor.js

32
src/case/richeditor/niceditor/niceditor.js

@ -6,6 +6,12 @@
* @extends BI.Widget * @extends BI.Widget
*/ */
!(function () { !(function () {
function isIE11Below () {
if (!BI.isIE()) {
return false;
}
return BI.getIEVersion() < 11;
}
BI.NicEditor = BI.inherit(BI.Widget, { BI.NicEditor = BI.inherit(BI.Widget, {
_defaultConfig: function () { _defaultConfig: function () {
return BI.extend(BI.NicEditor.superclass._defaultConfig.apply(this, arguments), { return BI.extend(BI.NicEditor.superclass._defaultConfig.apply(this, arguments), {
@ -59,6 +65,7 @@
selectCheck: function (e) { selectCheck: function (e) {
var t = e.target; var t = e.target;
var self = this;
var found = false; var found = false;
do { do {
if (t.nodeName !== "svg" && t.className && t.className.indexOf(prefix) != -1) { if (t.nodeName !== "svg" && t.className && t.className.indexOf(prefix) != -1) {
@ -67,6 +74,10 @@
} }
if (this.instance.checkToolbar(t)) { if (this.instance.checkToolbar(t)) {
this.instance.saveRng(); this.instance.saveRng();
// 如果是点击在toolbar内恢复选取(IE中出现的问题)
BI.defer(function () {
self.instance.restoreRng();
});
return; return;
} }
} while (t = t.parentNode); } while (t = t.parentNode);
@ -85,8 +96,8 @@
}, },
setValue: function (v) { setValue: function (v) {
v = v || ""; v = v || ( isIE11Below() ? "" : "<br>");
v = v.startWith("<div>") ? v : "<div>" + v + "</div>"; v = ($(v)[0] && $(v)[0].nodeName === "P") ? v : "<p>" + v + "</p>";
this.instance.setContent(v); this.instance.setContent(v);
}, },
@ -121,7 +132,7 @@
nicEditorInstance.superclass._init.apply(this, arguments); nicEditorInstance.superclass._init.apply(this, arguments);
var o = this.options; var o = this.options;
var initValue = o.value || "<br>"; var initValue = o.value || "<br>";
initValue = initValue.startWith("<div>") ? initValue : "<div>" + initValue + "</div>"; initValue = initValue.startWith("<p>") ? initValue : "<p>" + initValue + "</p>";
this.ne = this.options.ne; this.ne = this.options.ne;
this.elm = BI.createWidget({ this.elm = BI.createWidget({
type: "bi.layout", type: "bi.layout",
@ -281,7 +292,7 @@
keyDown: function (e, t) { keyDown: function (e, t) {
if (e.keyCode === 8) { if (e.keyCode === 8) {
var html = this.elm.element.html().toLowerCase().trim(); var html = this.elm.element.html().toLowerCase().trim();
if (html === "<div><br></div>" || html === "<div></div>") { if (html === "<p><br></p>" || html === "<p></p>") {
e.preventDefault() e.preventDefault()
return; return;
} }
@ -315,7 +326,7 @@
var newLine; var newLine;
var html = this.elm.element.html().toLowerCase().trim(); var html = this.elm.element.html().toLowerCase().trim();
if (!html || html === '<br>') { if (!html || html === '<br>') {
newLine = $("<div></div>"); newLine = $(this._getNewLine());
this.elm.element.html(''); this.elm.element.html('');
this.elm.element.append(newLine); this.elm.element.append(newLine);
this.setFocus(newLine[0]); this.setFocus(newLine[0]);
@ -418,7 +429,7 @@
// 新增一个空行 // 新增一个空行
var html = last.html().toLowerCase(); var html = last.html().toLowerCase();
var nodeName = last.nodeName; var nodeName = last.nodeName;
if ((html !== "<br>" && html !== "<br\/>") || nodeName !== "DIV") { if ((html !== "<br>" && html !== "<br\/>") || nodeName !== "P") {
// 最后一个元素不是空行,添加一个空行,重新设置选区 // 最后一个元素不是空行,添加一个空行,重新设置选区
el.append(newLineHtml); el.append(newLineHtml);
this.initSelection(); this.initSelection();
@ -430,7 +441,7 @@
}, },
_getNewLine: function () { _getNewLine: function () {
return "<div><br></div>"; return isIE11Below() ? "<p></p>" : "<p><br></p>";
}, },
_isChildOf: function(child, parent) { _isChildOf: function(child, parent) {
@ -447,11 +458,6 @@
return false; return false;
}, },
_isIE11Below: function() {
if (!BI.isIE()) {
return false;
}
return BI.getIEVersion() < 11;
}
}); });
}()); }());

Loading…
Cancel
Save