2016-12-05 2 views
1

Я знаю, что отключение щелчка правой кнопкой мыши на изображениях не остановит тех, кто не обращает внимания на загрузку изображений. Использование их в качестве фона CSS не является вариантом.Отключить «Сохранить изображение» (для noobs)

В идеале, я бы хотел ТОЛЬКО удалить параметры сохранения изображений, а не все контекстное меню. Я нашел 3 решения. Что люди рекомендуют и почему? Есть ли какая-либо конкретная часть файла include, в который я должен поместить это?

Большое спасибо :)

# 1

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

# 2

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

121 upvotes ЦСИ: Disabling right click on images using jquery

# 3

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

76 upvotes ЦСИ: How to prevent Right Click option using jquery

+0

просто поместите изображение в 'background' css property – 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

К сожалению, я пропустил это! –