Но иногда мы сталкиваемся с такой проблемой: мы хотим запретить посетителям использовать контекстное меню или заблокировать определенные функции контекстного меню. Например, чтобы защитить содержимое веб-страницы, мы не хотим, чтобы посетители. просматривать исходный код веб-страницы через контекстное меню. Мы не хотим, чтобы они выбирали, копировали и т. д. веб-контент с помощью щелчка правой кнопкой мыши. При рассмотрении этой проблемы многие веб-дизайнеры просто блокируют щелчок правой кнопкой мыши. Вместо этого мы могли бы использовать сценарии для реализации стилизованного контекстного меню и добавить его в раздел «Загрузить собственный контент в это контекстное меню». Давайте попробуем эту идею сейчас.
Первое, что нам нужно учитывать, это вызов функции через событие щелчка правой кнопкой мыши. Эта функция используется для отображения содержимого нового контекстного меню. Мы знаем, что событие щелчка правой кнопкой мыши вызывается через document.oncontextmenu. Если мы определим document.oncontextmenu = определенную функцию, мы сможем вызвать новое контекстное меню. Ключевой вопрос заключается в том, как управлять меню через это. В то же время меню должно быть скрыто с помощью события щелчка формы document.body.onclick (обычно относится к щелчку левой кнопкой мыши). Этот процесс завершает всплывающее окно и скрытие контекстного меню.
Во-первых, давайте посмотрим на этот код скрипта:
/*Инициализация*/
<script Language="JavaScript1.2">
/*Если текущий браузер — Internet Explorer, document.all возвращает true*/
if (document.all && window.print) {
/*Выберите стиль отображения окна меню*/
ie5menu.className = menuskin;
/*Процесс обработки события перенаправления правой кнопки мыши осуществляется специальной программой showmenuie5*/
document.oncontextmenu = showmenuie5;
/*Процесс обработки перенаправления события левой кнопки мыши осуществляется специальной программойidemenuie5*/
document.body.onclick = скрытьменуие5;
}
</script>
Обычно событие нажатия правой кнопки мыши происходит после загрузки страницы, поэтому, чтобы не влиять на скорость загрузки страницы, мы можем поместить этот код в конец страницы. Этот код очень прост. Сначала проверьте, является ли это браузером IE. Если да, то следующее определение должно быть действительным. То есть, когда обнаруживается, что клиент использует браузер IE, функция showmenuie5 вызывается, когда пользователь генерирует событие щелчка правой кнопкой мыши, а функцияidemenuie5 вызывается, когда пользователь генерирует событие щелчка левой кнопкой мыши.
Решив вышеуказанную проблему, теперь нам предстоит рассмотреть, как отображать и скрывать меню с помощью функции showmenuie5 и функцииidemenuie5. Конечно, меню здесь — это не настоящее меню, вызываемое правой кнопкой мыши, а div, который мы создали сами, и помещаем в этот div то, что хотим. Вызовите функцию через события мыши, чтобы управлять ее видимостью, что дает тот же эффект, что и использование правой кнопки мыши.