2013-07-04 30 views
0

我正在尝试编写一个将从页面上的ID中删除onselectstart效果的用户脚本。取消绑定.onselectstart返回false

到目前为止,我假设我可以用这样的重新绑定原函数:

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

JSFiddle

任何想法,将不胜感激。

+0

你想在原始selectStart函数之前/之后做些什么?这并不完全清楚。如果是这样,您可以存储旧的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); 

这可能无法在传统上下文中运行,但对用户脚本起作用。这里是最后的脚本:

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