guy 4 years ago
parent
commit
a7db8e15b3
  1. 17
      src/base/single/text.js
  2. 7
      src/core/platform/web/jquery/fn.js

17
src/base/single/text.js

@ -104,21 +104,22 @@
_getShowText: function () {
var o = this.options;
return BI.isFunction(o.text) ? o.text() : o.text;
var text = BI.isFunction(o.text) ? o.text() : o.text;
text = BI.isKey(text) ? text : o.value;
return BI.Text.formatText(text + "");
},
doRedMark: function (keyword) {
var o = this.options;
// render之后做的doredmark,这个时候虽然标红了,但是之后text mounted执行的时候并没有keyword
o.keyword = keyword;
this.text.element.__textKeywordMarked__(this._getShowText() || o.value, keyword, o.py);
this.text.element.__textKeywordMarked__(this._getShowText(), keyword, o.py);
},
unRedMark: function () {
var o = this.options;
o.keyword = "";
this.text.element.__textKeywordMarked__(this._getShowText() || o.value, "", o.py);
this.text.element.__textKeywordMarked__(this._getShowText(), "", o.py);
},
doHighLight: function () {
@ -144,13 +145,7 @@
BI.Text.superclass.setText.apply(this, arguments);
// 为textContext赋值为undefined时在ie和edge下会真的显示undefined
this.options.text = BI.isNotNull(text) ? text : "";
if (BI.isIE9Below()) {
this.text.element.html(BI.htmlEncode(BI.Text.formatText(this._getShowText())));
return;
}
// textContent性能更好,并且原生防xss
this.text.element[0].textContent = BI.Text.formatText(this._getShowText());
BI.isKey(this.options.keyword) && this.doRedMark(this.options.keyword);
this.doRedMark(this.options.keyword);
}
});
var formatters = [];

7
src/core/platform/web/jquery/fn.js vendored

@ -78,7 +78,12 @@ if (BI.jQuery) {
*/
__textKeywordMarked__: function (text, keyword, py) {
if (!BI.isKey(keyword) || (text + "").length > 100) {
return this.html(BI.htmlEncode(text));
if (BI.isIE9Below()) {
return this.html(BI.htmlEncode(text));
}
// textContent性能更好,并且原生防xss
this[0].textContent = text;
return this;
}
keyword = keyword + "";
keyword = BI.toUpperCase(keyword);

Loading…
Cancel
Save