Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Запрет/своё попап меню, по правой клавише 
V
    Опции темы
December
Дата 30.12.2008, 17:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Antitheorist
****


Профиль
Группа: Участник
Сообщений: 4423
Регистрация: 14.8.2002
Где: Харьков

Репутация: нет
Всего: 57



Заказчик попросил запретить всплывающее меню на картинках "чтобы не крали". Несмотря на подробное и доступное объяснение, что это и защитой назвать нельзя, и вообще полное ламерство, заказчик настоял на таком фичере. Пришлось делать.

В инете валяются в основном очень старые, нерабочие или неоптимальные примеры. Вот код, который запрещает клик только на картинках (!) в ИЕ и Фаерфоксе. В Опере по умолчанию скриптам запрещено шутки шутить с попап меню.
Код

function new_rightclick(e) {

  if (navigator.appName == 'Netscape' && (e.which == 2 || e.which == 3)) {
    if (e.target.tagName=='IMG') return false;
  } else if (navigator.appName == 'Microsoft Internet Explorer' && (event.button!=1)) {
    if (event.srcElement.tagName=='IMG') return false;
  }
  return true;
}//new_rightclick

document.oncontextmenu=new_rightclick;


Код можно также использовать как основу для подмены стандартного попапа на свой.

Тестировалось FF3.x, IE6, IE7.


--------------------
Для друзей с винграда - скидки на разработку сайтов
PM MAIL WWW ICQ   Вверх
Aliance
Дата 25.5.2009, 20:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: 6
Всего: 137



Я бы посоветовал к конструкции вида .tagName добавить еще преобразование строки в большой регистр, ибо на сколько я знаю, если выставлен заголовок с content-type равным application/xhtml+xml, то tagName будет отдаваться в нижнем регистре.

Так же по повожу события, три замечания:
- я бы сделал все же регистрацию события
Код

var evt = e || window.event;

- я бы не делал бы проверки на браузер, если можно проверять свойство
Код

if ( evt.target )
    // Gecko ( W3C )
else if ( evt.srcElement )
    // IE

- я бы кроме возвращаемого значения советовал бы пользоваться еще и свойствами/методами такими как cancelBubble / stopPropagation() и (или) returnValue - preventDefault()

Так же хотел бы спросить у автора, данный скрипт будет работать для элементов, которые были сгенерированы скриптом не при начальной загрузке страницы, а в любое время N?

P.S. прошу прощения за некий некрофилизм, просто реши что топик с 0 постов не ухудшится от разумной критики
PM MAIL WWW ICQ Skype   Вверх
December
Дата 25.5.2009, 21:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Antitheorist
****


Профиль
Группа: Участник
Сообщений: 4423
Регистрация: 14.8.2002
Где: Харьков

Репутация: нет
Всего: 57



Aliance, you are welcome to сделать из скрипта конфетку есть есть желание. Я ПМ, а н JS-девелопер, и тратить время на _такой_ таск мне офигительно в лом smile


--------------------
Для друзей с винграда - скидки на разработку сайтов
PM MAIL WWW ICQ   Вверх
Aliance
Дата 25.5.2009, 21:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: 6
Всего: 137



Впринципе, более-менее неплохой подобный скрипт я давным давно писал. Хотя возможно с тех времен он уже устарел. Но в целом я считаю такую вещь бесполезной, так что таким не занимаюсь принципиально.
А мой коммент скорее к той аудитории, которая захочет использовать данный скрипт.
PM MAIL WWW ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Здесь публикуют скрипты, которые уже проверены в обсуждениях других тем (при этом полезно поставить ссылки на все смежные обсуждения) или переносятся кем-либо из модераторов по просьбе участников, если видно, что в результате обсуждения темы был написан полезный или интересный скрипт. Третий возможный вариант - участник форума публикует скрипт, заведомо известный как полезный и эффективный, для, возможно, небольшой доработки и обсуждения.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Наши скрипты | Следующая тема »


 




[ Время генерации скрипта: 0.0890 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.