| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- /**
- * @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>');
- });
- }
- });
|