| 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; |