UNPKG

@creately/inner-text

Version:

Cross Browser `innerText` function based on innerHTML with replacements.

75 lines (51 loc) 1.91 kB
# inner-text Cross Browser `innerText` function based on innerHTML with replacements. > innerText is a function, that is not standardized, but Chrome and IE support. Firefox doesn't. There is different ways to implement the innerText functionality. > You can get a selection `window.getSelection()`, select all the elements `selection.selectAllChildren(el)` and call `selection.toString()`. > > The problem is, that it is based on the user selection, and you can mess it up. > > If you want to go this route: [inner-text-shim](https://github.com/intesso/inner-text-shim) is for you. Otherwise this function can be helpful. # install ```sh npm install @creately/inner-text ``` # usage All innerText does is get the `el.innerText` from the `element`, even when the browser does not support it. You can pass an html element or a string with html as input to this function. you can't set the `innerText` with this module. ```js var innerText = require('inner-text'); // get the dom element with plain javascript var el = document.querySelector('body'); // or with jquery: el = $('body')[0]; // set the innerHTML (only for this example) el.innerHTML = 'hello<br/>world'; var text = innerText(el) assert.equal(text, 'hello\nworld'); ``` You can specify the tags to replace with ```js el.innerHTML = 'hello<p>world</p>'; var text = innerText(el) assert.equal(text, 'hello\nworld'); el.innerHTML = 'hello<div>world</div>'; var text = innerText(el, { tags: { div : '\n' }} ) assert.equal(text, 'hello\nworld'); el.innerHTML = 'hello<p>world</p>'; var text = innerText(el, { tags: { p : '\n' }}) assert.equal(text, 'helloworld'); el.innerHTML = 'hello<p>world</p>hi<p>there</p>'; var text = innerText(el, { tags: { p : '\n', div : '\n\n' }}) assert.equal(text, 'hello\nworldhi\n\nthere'); ``` # test ```sh npm test ``` # license MIT # author Andi Neck | [@andineck](https://twitter.com/andineck)