關於處理禁止圖片默認拖拽行為動作


這樣子我鼠標移動的時候,沒有觸發onmousemove事件綁定的函數。操作起來很別扭。。后來自己整理了一下。。一共有三個辦法可以解決這個問題。。具體哪個辦法更優,現在還不清楚。以后有能力判斷優劣的時候再判斷吧

1、document.images[i].ondragstart=function (){return false;};

直接循環頁面所有的img標簽。。然后把它的ondragstart事件return false;這樣子就禁止了瀏覽器圖片的默認拖拽動作了。感覺這里要遍歷所有IMG標簽。。個人不喜歡用這種辦法。。覺得性能不是最佳吧。主觀認為而已。。

2、event.preventDefault();

在handler.onmousedown = function(event){}函數里面加上event.preventDefault();

該方法將通知 Web 瀏覽器不要執行與事件關聯的默認動作(如果存在這樣的動作)。例如,如果 type 屬性是 "submit",在事件傳播的任意階段可以調用任意的事件句柄,通過調用該方法,可以阻止提交表單。注意,如果 Event 對象的 cancelable 屬性是 fasle,那么就沒有默認動作,或者不能阻止默認動作。無論哪種情況,調用該方法都沒有作用。

3、this.setCapture && this.setCapture();

在handler.onmousedown = function(event){}函數里面加上this.setCapture && this.setCapture();

該setCapture函數在屬於當前線程的指定窗口里設置鼠標捕獲。一旦窗口捕獲了鼠標,所有鼠標輸入都針對該窗口,無論光標是否在窗口的邊界內。同一時刻只能有一個窗口捕獲鼠標。個人喜歡這種辦法。。感覺比較靠譜。

另外。。如果用第三個辦法。。在onmousedown的時候設置了鼠標捕獲,還要在onmouseup的時候加上一句釋放鼠標捕獲:handle.releaseCapture && handle.releaseCapture();要不然在IE6下面會出錯#盡管在其他現代瀏覽器沒問題#


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM