|
|
@ -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; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
}); |
|
|
|
}); |
|
|
|
}()); |
|
|
|
}()); |
|
|
|