vue-kityminder-ggg
Version:
百度脑图
54 lines (45 loc) • 1.79 kB
JavaScript
/**
* @fileOverview
*
* innerText polyfill
*
* @author: techird
* @copyright: Baidu FEX, 2014
*/
define(function(require, exports, module) {
if ((!('innerText' in document.createElement('a'))) && ('getSelection' in window)) {
HTMLElement.prototype.__defineGetter__('innerText', function() {
var selection = window.getSelection(),
ranges = [],
str, i;
// Save existing selections.
for (i = 0; i < selection.rangeCount; i++) {
ranges[i] = selection.getRangeAt(i);
}
// Deselect everything.
selection.removeAllRanges();
// Select `el` and all child nodes.
// 'this' is the element .innerText got called on
selection.selectAllChildren(this);
// Get the string representation of the selected nodes.
str = selection.toString();
// Deselect everything. Again.
selection.removeAllRanges();
// Restore all formerly existing selections.
for (i = 0; i < ranges.length; i++) {
selection.addRange(ranges[i]);
}
// Oh look, this is what we wanted.
// String representation of the element, close to as rendered.
return str;
});
HTMLElement.prototype.__defineSetter__('innerText', function(text) {
/**
* @Desc: 解决FireFox节点内容删除后text为null,出现报错的问题
* @Editor: Naixor
* @Date: 2015.9.16
*/
this.innerHTML = (text || '').replace(/</g, '<').replace(/>/g, '>').replace(/\n/g, '<br>');
});
}
})