1function preventSelection(element){ 2 var preventSelection = false; 3 function addHandler(element, event, handler){ 4 if (element.attachEvent) 5 element.attachEvent('on' + event, handler); 6 else 7 if (element.addEventListener) 8 element.addEventListener(event, handler, false); 9 } 10 function removeSelection(){ 11 if (window.getSelection) { window.getSelection().removeAllRanges(); } 12 else if (document.selection && document.selection.clear) 13 document.selection.clear(); 14 } 15 function killCtrlA(event){ 16 var event = event || window.event; 17 var sender = event.target || event.srcElement; 18 if (sender.tagName.match(/INPUT|TEXTAREA/i)) 19 return; 20 var key = event.keyCode || event.which; 21 if (event.ctrlKey && key == 'A'.charCodeAt(0)) // 'A'.charCodeAt(0) ìîæíî çàìåíèòü íà 65 22 { 23 removeSelection(); 24 if (event.preventDefault) 25 event.preventDefault(); 26 else 27 event.returnValue = false; 28 } 29 } 30 addHandler(element, 'mousemove', function(){ 31 if(preventSelection) 32 removeSelection(); 33 }); 34 addHandler(element, 'mousedown', function(event){ 35 var event = event || window.event; 36 var sender = event.target || event.srcElement; 37 preventSelection = !sender.tagName.match(/INPUT|TEXTAREA/i); 38 }); 39 addHandler(element, 'mouseup', function(){ 40 if (preventSelection) 41 removeSelection(); 42 preventSelection = false; 43 }); 44 addHandler(element, 'keydown', killCtrlA); 45 addHandler(element, 'keyup', killCtrlA); 46} 47 48preventSelection(document);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.