什么是跨浏览器方法?我需要阻止对图像的任何默认操作,以便在默认的基础上不会触发拖动或其他任何操作。
答案 0 :(得分:5)
您可以注册要取消的活动,然后从return false
注册或使用Event.preventDefault()
,具体取决于浏览器和活动。
答案 1 :(得分:4)
(function() {
var onmousedown;
if('onmousedown' in document && typeof document.onmousedown == 'function') {
onmousedown = document.onmousedown;
}
document.onmousedown = function(e) {
if(typeof e == 'undefined') {
e = window.event;
}
if(!e.target) {
e.target = e.srcElement || document;
}
if('nodeName' in e.target && e.target.nodeName.toLowerCase() == 'img') {
if(e.preventDefault) {
e.preventDefault();
}
// If you want to register mousedown events for
// elements containing images, you will want to
// remove the next four lines.
if(e.stopPropagation) {
e.stopPropagation();
}
e.cancelBubble = true;
e.returnValue = false;
return false;
}
if(onmousedown !== undefined) {
onmousedown(e);
}
};
})();
如果这不符合您的要求,您可能需要做一些与您想要阻止的其他事件类似的事情。
另外值得注意的是,如果您试图阻止人们将图像从页面下载到他们的计算机上,那么您将无法成功。如果浏览器可以下载图像,则用户也可以。使用JavaScript来阻止(某些)尝试很容易通过简单地禁用JavaScript来规避。
答案 2 :(得分:1)
您只能取消特定活动。您无法“全局取消”默认操作。
要专门取消dragging
图像(在某些浏览器中只是默认功能),请将false
返回到mousedown
事件。