Запрета клика правой кнопкой по ссылке

12
KianoT
На сайте с 04.04.2012
Offline
95
4223

Приветствую!

Собсно сабж.Везде в инете информация по запрету правого клика на всем сайте.В моём же случае хочу установить запрет клика правой кнопкой мыши только на определённые ссылки на главной странице.

url вида: <a class="fancybox fancybox.iframe" href="http://сайт.ру/страница-frame.html">Список адресов</a>

Вообще суть в том, что по клику на ссылку(к примеру Цены) левой кнопкой мыши, всплывает фрэйм в модальном окне с таблицей, где указаны цены на услуги. Если же на эту ссылку открыть правой кнопкой мыши(Открыть ссылку в новой вкладке), то фрэйм открывается как есть по прямому url.

Решение данной задачи так и не нашёл в инете, поэтому решено запретить открывать ссылку правой кнопкой мыши.

Пример такого модального окна в фрейме:

http://fancyapps.com/fancybox/#examples

Если открыть правой кнопкой:

http://fancyapps.com/demo/iframe.html

Заранее благодарю за ответы, а если подскажите решение второго вопроса с фрэймом, то вообще жирный лайк :beer:

Ragnarok
На сайте с 25.06.2010
Offline
226
#1

как-то там через onclick = return false, можно то же средствами jQuery. Гуглить пробовали?

//TODO: перестать откладывать на потом
alexvaleev
На сайте с 04.02.2010
Offline
55
#2

Запрет на правый клик:

$(".fancybox").bind("contextmenu", function (e) {

return false;
});

Еще можно заменить "iframe" на "ajax", страницу отдавать через php в зависимости от заголовков - без шаблона если запрос ajax, как полноценную - если перешли по прямой ссылке.

Блог (http://alexvaleev.ru) Всем роуп! (https://rujump.ru/)
Ayavryk
На сайте с 11.10.2003
Offline
209
#3

Запрет на дефолтное поведение броузера - зло.

Тынгыр, мынгыр, комсомол (http://erum.ru). Ехари, ехари, (жалобно) аяврик. /народная тунгусская песня/
Mik Foxi
На сайте с 02.03.2011
Offline
1076
#4

Если юзер хочет открыть в новом окне - не мешайте ему, ему так удобнее.

Антибот, антиспам, веб файрвол, защита от накрутки поведенческих: https://antibot.cloud/ + партнерка, до 40$ с продажи.
nalex
На сайте с 10.10.2011
Offline
69
#5

Присоединюсь, что раздражают всякие запреты функций, установленные по умолчанию в браузерах.

Бывают разные ситуации, когда нужна правая клавиша, в том числе сам часто открываю ссылки в новой вкладке (часто нужно посмотреть ту страницу, на которой находишься и новую по ссылке, особенно если страницы на одном сайте без target="_blank").

Кто пожелает скопировать текст, картинку или ссылку, тот сделает без труда. Разве есть какие-то проблемы открыть код страницы?

VHS
На сайте с 28.09.2007
Offline
142
VHS
#6

Тема для холивара.

Фишки с правой кнопкой можно оправдать в браузерных играх, а на коммерческом сайте лучше реализовать функционал так, чтобы это было пользователю удобно, понятно и предсказуемо. Запрет на использование функционала браузера - это костыль...

KianoT
На сайте с 04.04.2012
Offline
95
#7

Ребята, ещё раз повторюсь, если правой кнопкой открывать фрэйм, то он открывается на отдельной странице в том виде, как есть(т.е. без шапки сайта, сайдбара, футера и т.д.), в первом сообщение описана суть с примерами.

Речь не идёт о запрете правой кнопкой по всему сайту, только лишь часть ссылок(их у нас всего 4), т.е. 4 фрэйма.

alexvaleev:
Запрет на правый клик:
$(".fancybox").bind("contextmenu", function (e) {
return false;
});


Еще можно заменить "iframe" на "ajax", страницу отдавать через php в зависимости от заголовков - без шаблона если запрос ajax, как полноценную - если перешли по прямой ссылке.

Буду благодарен, если скинете посмотреть такие примеры на ajax

По ссылке http://fancyapps.com/fancybox/#examples там тоже есть реализация на аяксе, но если открыть правой кнопкой, тоже самое что и с фрэймом.

Lord Maverik
На сайте с 15.04.2003
Offline
471
#8
KianoT:
если правой кнопкой открывать фрэйм, то он открывается на отдельной странице в том виде

Попробуйте определить, что фрейм открыт вне родительского окна, и перезагрузить страницу так, чтобы шапка была и все что Вам нужно.

А запрещать правую кнопку - сжечь на костре вас надо 🤪

RedMall.Ru (https://redmall.ru) - Товары из Китая (Таобао, Tmall) с проверкой качества, скидка для форумчан 7% Партнерская программа 2 уровня: 5% + 5%. Подробнее. (https://redmall.ru/about/partner/)
alexvaleev
На сайте с 04.02.2010
Offline
55
#9
KianoT:
http://fancyapps.com/fancybox/#examples там тоже есть реализация на аяксе, но если открыть правой кнопкой, тоже самое что и с фрэймом.

При ajax-запросе fancybox добавляет заголовок X-fancyBox:true

Соответственно в php он будет доступен в виде примерно таком

$_SERVER["HTTP_X_FANCYBOX"] = true

Остается в файле с контентом проверять отсутствие этой переменной и подключать шаблон.

SeVlad
На сайте с 03.11.2008
Offline
1609
#10
KianoT:
ещё раз повторюсь, если правой кнопкой открывать фрэйм, то он открывается на отдельной странице в том виде, как есть(т.е. без шапки сайта, сайдбара, футера и т.д.)

Я почти уверен, что ты пошел неверным путём.

Тебе не нужна ссылка (<а href="">). Не нужен и фрейм (это вообще однозначно). Нужна ява-скрип-псевдо-ссылка (онклик на элементе или иначе) + всплывающий бокс с нужным контетом (пускай и подружающегося со статик файла, но тогда его нужно блочить по реферу или как-то иначе).

Это относительно просто реализуется на аяксе, но я не спец, не подскажу как что, а вот коллеги, думаю, в курсе этих дел.

ЗЫ. "псевдо-ссылки" посмотреть можно напр тут http://www.unmedia.ru/ в меню.

Делаю хорошие сайты хорошим людям. Предпочтение коммерческим направлениям. Связь со мной через http://wp.me/P3YHjQ-3.
12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий