2016-12-05 55 views
1

我知道禁用圖像右鍵單擊不會阻止具有技術頭腦的人下載圖像。將它們用作CSS背景不是一種選擇。禁用「保存圖像」(用於noobs)

理想情況下,我想僅刪除圖像保存選項,而不是整個上下文菜單。我找到了3個解決方案。人們推薦什麼?爲什麼?包含文件中有哪些特定部分是我應該放在這裏的?

非常感謝:)

#1

$("body").on("contextmenu", "img", function(e) { 
    return false; 
}); 

#2

$('img').bind('contextmenu', function(e) { 
    return false; 
}); 

121 upvotes,SRC:Disabling right click on images using jquery

#3

$(document).ready(function() { 
    $("img").on("contextmenu", function() { 
     return false; 
    }); 
}); 

76 upvotes,SRC:How to prevent Right Click option using jquery

+0

只是把圖像放在'background' css屬性 – ixpl0

+3

@iXplo仔細閱讀這個問題。她說:「將它們用作CSS背景不是一種選擇。」 – besciualex

+4

他們都用不同的觸發點在字面上做了完全相同的事情。我認爲沒有任何區別。 – josephting

回答

2

(2)使用的方法已過時:bind,所以我不會推薦它。 (1)和(3)將做同樣的事情,唯一的區別是在(3)在完全加載頁面之後添加監聽器。

無法禁用默認上下文菜單中的特定菜單項。然而,你可能會爲「img」元素編寫自己的上下文菜單,其中不包括保存選項,但我懷疑爲您的目的不值得麻煩。

+0

要添加到這個答案,(1)也將'綁定'動態加載img的頁面上。我會推薦使用(1),並將其封裝在'$(document).ready()'塊中。 –

+0

@RhysBradbury(3)也可用於動態添加的內容,因爲使用'on()函數附加的事件處理程序將適用於當前和未來的元素。見http://stackoverflow.com/questions/10082031/why-use-jquery-on-instead-of-click –

+0

糟糕,我錯過了! –