|
|
|
| Задача запретить сохранение картинок с веб-страниц по щелчку правой кнопки мыши. Понятно, что, кто понимает, в чем дело. сохранит (то ли выполнение скриптов остановит, то ли сохранит страницу с рисунками и возьмет оттуда, то ли принтскрин+фотошоп+сохранить. Но банальное сохранение правой кнопкой нужно отключить.
Ранее с кликами работать не приходилось. Порылся в сети, нашел описания... Думал сделать так:
function blockMenu(evt){
evt = (evt) ? evt : window.event;
var target = evt.target || evt.srcElement;
if(evt.button == 2 && target.tagName.toLowerCase()=='img'){
return false;
}
}
document.onmousedown = function() {blockMenu(); return false;};
|
Или что-то вроде того. Но не помогает.
Большая просьба, кто силен в этом, помогите решить задачу
Фактически проблема в том, что не работает
evt = (evt) ? evt : window.event; | |
|
|
|
|
|
|
|
для: kosta_in_net
(27.03.2014 в 22:17)
| | $('img').bind('contextmenu', function(e){
return false;
});
Или "чистый" JS: http://jsbin.com/doqat/1/edit?js,output
function nocontext(e) {
var clickedTag = (e===null) ? event.srcElement.tagName : e.target.tagName;
if (clickedTag == "IMG") {
return false;
}
}
document.oncontextmenu = nocontext; | |
|
|
|
|
|
|
|
для: Deed
(28.03.2014 в 00:54)
| | Спасибо. Но есть пара моментов:
В ИЕ6 на этой стадии:
var evt = (e===null) ? event : e;
alert(evt);
дает undefined. То есть, ни e, ни event ишак не видит
в Опере 9.5 вообще не реагирует на событие.
Может есть что-то более кросбраузерное? | |
|
|
|
|
|
|
|
для: kosta_in_net
(28.03.2014 в 01:34)
| | <img src="" oncontextmenu="alert('Not');return false" /> | |
|
|
|
|
|
|
|
для: confirm
(28.03.2014 в 02:08)
| | в ИЕ 6.0 добился результата:
function nocontext(evt) {
var evt = (evt) ? evt : window.event;
var target = evt.target || evt.srcElement;
if(target.tagName.toLowerCase()=='img'){
return false;
}
}
document.oncontextmenu = nocontext;
|
В опере 9.5 не хочет :(
Вставка непосредственно в тег не помогает | |
|
|
|
|
|
|
|
для: kosta_in_net
(28.03.2014 в 02:34)
| | Вам что нужно? Если картинки, то какого черта вы обрабатываете событие всего документа? Обрабатывайте (пропишите нативные или определите программно) события изображений.
Если версия какого либо браузера не понимает этого события, а так хочется и колется, то обрабатывайте нажатие кнопок мыши, и если правая, то... | |
|
|
|
|
|
|
|
для: confirm
(28.03.2014 в 02:39)
| | Старый сайт. Чтоб не переделывать все, решил сделать единый скрипт, отлавливающий именно картинки. В Опере 9.5 пока не удалось, а в остальных браузерах запрет правой кнопки на картинке работает | |
|
|
|
|
|
|
|
для: kosta_in_net
(28.03.2014 в 16:44)
| | Я вам уже написал - выбрасывайте oncontextmenu и обрабатывайте нажатия кнопок мыши. | |
|
|
|
|
|
|
|
для: confirm
(28.03.2014 в 16:54)
| | я и начинал с обработки кнопок:
function blockMenu(evt){
evt = (evt) ? evt : window.event;
var target = evt.target || evt.srcElement;
if(evt.button == 2 && target.tagName.toLowerCase()=='img'){
return false;
}
}
document.onmousedown = function() {blockMenu(); return false;};
|
Только ничего не вышло :(
Уверен, что вы в яваскрипте сильнее меня. Помогите. Но цель такова: чтобы не переделывать весь сайт, просто добавить скрипт, который запретит щелчок правой кнопки мыши на изображениях. | |
|
|
|
|
|
|
|
для: kosta_in_net
(28.03.2014 в 17:01)
| | Номер кнопки у браузеров будет различен. tagName.toLowerCase() - это зачем? Что сложно писать в верхнем регистре тем самым экономя на одном методе?
Ищите здесь и о событиях, и прочем. | |
|
|
|
|
|
|
|
для: confirm
(28.03.2014 в 17:12)
| | toLowerCase, конечно, не обязателен. На http://javascript.ru/ я искал. В итоге получил то, что получил. Потому и решил обратиться к тем, кто имеет опыт решения данной задачи. | |
|
|
|
|
|
|
|
для: kosta_in_net
(28.03.2014 в 01:34)
| | оу, под ие6 уже давно никто не верстает | |
|
|
|
|
|
|
|
для: psychomc
(28.03.2014 в 10:32)
| | тем более, не отменяет щелчки. типа, нажать можно, а вот щелчок - отменить. | |
|
|
|
|
|
|
|
для: psychomc
(28.03.2014 в 10:32)
| | Речь о старом сайте. В ИЕ6 удалось запретить сохранение картинок. В Опере 9.5 пока не удается | |
|
|
|
|
|
|
|
для: kosta_in_net
(27.03.2014 в 22:17)
| | Проще поверх картинок растягивать однопиксельный прозрачный gif. | |
|
|
|
|
|
|
|
для: Саня
(28.03.2014 в 15:28)
| | ... с логотипом или чем-то еще портящим весь вид. А printscreen? Легче вообще не выкладывать. | |
|
|
|
|
|
|
|
для: elenaki
(28.03.2014 в 16:22)
| | ТС сразу написал, что понимает бесполезность этой затеи против знающих людей.
Вот я и предложил более простую альтернативу js. | |
|
|
|