什麼是跨瀏覽器方法?我需要防止對圖像執行任何默認操作,以便拖動或其他任何操作都不會在默認的基礎上觸發。我們如何防止JavaScript中的默認操作?
回答
您只能取消特定事件。您不能「全局取消」默認操作。
爲了具體取消dragging
的圖像(其僅是缺省功能在某些瀏覽器),則返回false
到mousedown
事件。
您可以全局取消很多默認操作,但不是全部。在這種情況下(原諒糟糕的代碼)'document.onmousedown = function(e){if(typeof e =='undefined')e = window.event; if(e.preventDefault)e.preventDefault();如果(e.stopPagagation)e.stopPropagation(); e.returnValue = false;返回false; };但顯然這會產生很多令人討厭的副作用。 – eyelidlessness 2009-12-11 07:09:02
的確如此,這會產生令人討厭的副作用,但肯定更多的是全球概念。 – 2009-12-11 07:10:55
補充:適用於幾乎任何氣泡的事件。對於「事件授權」(顯然這是一個重疊的概念,並不完全是1:1)和非冒泡事件已經取得了一些進展,但我不知道這些事件是如何實現的。我知道jQuery最近的alpha已經開始實現這些,所以它可能值得一看。 – eyelidlessness 2009-12-11 07:14:01
您可以註冊要取消的活動,然後從其中註冊return false
或使用Event.preventDefault()
,具體取決於瀏覽器和事件。
這不適用於跨瀏覽器。但是海報並未指定哪些瀏覽器是針對的。 – squiddle 2009-12-11 10:28:49
(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來繞過。
- 1. 防止默認操作
- 2. 如何防止使用JavaScript的錨標記的默認操作?
- 3. 如何防止confirm()的默認操作JavaScript
- 4. 如何防止Mousewheel事件的默認操作
- 5. 我們如何防止MVC3中的提交按鈕操作?
- 6. 圖像裁剪:如何防止默認拖拽拖放操作?
- 7. 如何在Ajax中防止JQuery中的默認操作調用結果條件
- 8. 防止默認操作,但不要停止傳播事件
- 9. 的Javascript防止默認代碼
- 10. 如何在我們阻止它時恢復默認操作密鑰?
- 11. 防止在Chrome中對tab鍵執行默認操作?
- 12. 防止默認操作。只有在工作鉻
- 13. 防止對所有輸入的默認操作
- 14. 防止在ios 5.1上打開鍵盤的默認操作
- 15. 防止使用jQuery Ajax時的默認操作
- 16. 防止在畫布中執行默認操作,但在不使用畫布時恢復默認操作?
- 17. javascript功能防止默認問題
- 18. 防止默認onkeyup事件在JavaScript
- 19. 防止默認的IE
- 20. 綁定Aurelia事件處理程序可防止默認操作
- 21. 如何防止默認加載地圖?
- 22. 如何防止表單提交默認?
- 23. 如何防止刪除「默認」實體?
- 24. 如何防止默認並禁用href
- 25. 如何防止與CSS或JavaScript默認的標題行爲
- 26. 防止默認不起作用
- 27. ng-submit防止默認動作 - 意思?
- 28. jQuery防止輸入默認動作
- 29. jquery防止默認不起作用
- 30. è防止默認工作不
請說明你的問題 – Pierreten 2009-12-11 07:03:13
一切都很清楚。仔細讀。 – 2009-12-11 07:19:13
艾倫安德森,如果有人要求你澄清你的問題,你可能會認爲,你看起來很清楚的東西並不一定對其他人清楚。你的問題是非常不清楚的。 – eyelidlessness 2009-12-11 08:10:56