我想让img元素不可选择且不可分割,因为我将它用作窗口大小调整控件(单击并拖动周围的div调整窗口大小)。
完全正常如下:
noSelect[x].ondragstart = function() {return false};
但是因为这将在firefox(3.6。*)扩展中使用,它在每个HTMLElement周围使用XPCNativeWrapper,我不能使用“.onsdragstart”并且必须使用“.addEventListener”
问题是相当于上面的代码不起作用。单击并拖动img会触发firefox的默认图像拖动,而不是在以下内容中调整窗口大小:
noSelect[x].addEventListener("dragstart", function () {return false}, false)
上面引用的两行代码不相同吗?
不可选对象的完整上下文:
var noSelect = document.getElementsByClassName("noSelect")
for (x in noSelect) {
if (x == "length")
break
noSelect[x].unselectable = "on";
noSelect[x].onselectstart = function(){return false};
noSelect[x].ondragstart = function() {return false};
noSelect[x].style.userSelect = "none"; // w3c standard
noSelect[x].style.MozUserSelect = "none"; // Firefox
}
答案 0 :(得分:5)
addEventListener注册了EventListener,它没有任何特殊的返回代码处理。
从大多数on*
事件处理程序cancels the event per the HTML spec返回false,在常规EventListener中,这可以通过调用他在答案中提到的event.preventDefault()
来实现。
答案 1 :(得分:1)
关于您的问题:在非IE浏览器中,要使对象无法选择,您必须捕获onmousedown事件并阻止默认行为。
答案 2 :(得分:1)
我不知道为什么function() { return false; }
不起作用,但我知道function(event) { event.preventDefault(); }
可以在Firefox中使用。