function scripts_nodeSelectTextRange () { var el = arguments[0], args = Array.prototype.slice.call(arguments, 1); var txt = el.value; if (args.length === 0) { select(0, txt.length); return; } var str = args[0]; if (typeof str === 'string') { var start = txt.indexOf(str) if (start !== -1) { select(start, start + str.length); } return; } var start = args[0], end = args[1]; if (typeof start === 'number' && typeof end === 'number') { select(start, end); } function select(start, end) { if (el.focus) { el.focus(); } if (el.selectionStart !== void 0) { el.selectionStart = start; el.selectionEnd = end; return; } if (el.setSelectionRange !== void 0) { el.setSelectionRange(start, end); return; } throw Error('Unable to select the range'); } }