2013-07-04 4 views
0

페이지의 ID에서 onselectstart의 영향을 제거하는 userscript를 작성하려고합니다.바인드 해제 .onselectstart는 false를 반환합니다.

지금까지 나는이 같은 것을 사용하여 원래의 함수를 바인딩 할 수있는 가정입니다 :

document.getElementById('nodrag').onselectstart = function() { /* code original action */ }; 

JSFiddle

모든 아이디어를 주시면 감사하겠습니다.

+0

: 여기에 최종 스크립트입니다? 그것은 나에게 완전히 명확하지 않다. 그렇다면 이전 selectStart 이벤트 핸들러를 저장하고 새 selectStart 핸들러에서 원하는 곳으로 호출 할 수 있습니다. –

+0

안녕 LightStyle,이 후 것입니다. 내가 쓰고있는 스크립트는 userscript (greasemonkey)가 될 것이고 페이지 작성자가 그것을 허용하지 않으려 고 시도한 페이지의 텍스트 선택을 허용 할 것이다. 감사. – onmylemon

+0

'window.onload' 안에 함수를 랩핑하면 작동 될 것입니다. –

답변

2

나는 그 답을 해결할 수있을 것 같습니다. 나에게 힌트를 주신 LightStyle에게 감사드립니다.

그래서 내부에 document.getElementById('nodrag').onselectstart = function() { };이라는 스크립트 태그를 만들고 이것을 본체에 추가하십시오.

// Create the script to remove the nodrag from chrome 
var script = document.createElement('script'); 
script.type='text/javascript'; 
script.innerHTML = "document.getElementById('nodrag').onselectstart = function() { };"; 
var body = document.getElementsByTagName('body')[0]; 
body.appendChild(script); 

이 전통적인 상황에서 작동하지 않을 수는 그러나 userscript에 매력을 작동합니다. 당신은 원래 selectStart 기능 후/전에 뭔가를 할

https://gist.github.com/lgoldstien/5928021

관련 문제