diff options
Diffstat (limited to 'node_modules/select/src/select.js')
| -rw-r--r-- | node_modules/select/src/select.js | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/node_modules/select/src/select.js b/node_modules/select/src/select.js new file mode 100644 index 00000000..3e36485a --- /dev/null +++ b/node_modules/select/src/select.js @@ -0,0 +1,43 @@ +function select(element) { + var selectedText; + + if (element.nodeName === 'SELECT') { + element.focus(); + + selectedText = element.value; + } + else if (element.nodeName === 'INPUT' || element.nodeName === 'TEXTAREA') { + var isReadOnly = element.hasAttribute('readonly'); + + if (!isReadOnly) { + element.setAttribute('readonly', ''); + } + + element.select(); + element.setSelectionRange(0, element.value.length); + + if (!isReadOnly) { + element.removeAttribute('readonly'); + } + + selectedText = element.value; + } + else { + if (element.hasAttribute('contenteditable')) { + element.focus(); + } + + var selection = window.getSelection(); + var range = document.createRange(); + + range.selectNodeContents(element); + selection.removeAllRanges(); + selection.addRange(range); + + selectedText = selection.toString(); + } + + return selectedText; +} + +module.exports = select; |
