Программирование > JavaScript & JScript
oncontextmenu, возвращая true/false
Night_Wolf:
Добрый день,
никак не могу разобраться с вопросом по контекстному меню, надеюсь наталкнете меня в правильное направление.
Вообщем задача следующая:
необходимо отключить контекстное меню от правой кнопки мыши, за исключением вызова оного на любом элементе input.
function formsruler()
{
var forms = document.getElementsByTagName(\'form\');
for (var i=0;i
Spectrum.Wolf:
Вот функция которая тебе нужна:
function check(oEvent) {
var oEvent = !oEvent ? window.event : oEvent;
var oElement = oEvent.target ? oEvent.target : oEvent.srcElement;
if (\'INPUT\' == oElement.tagName) {
return true;
}
return false;
}
document.oncontextmenu = check;
Данный код работает в IE, FireFox, Safari, но не в Opera. Скорее всего Opera до сих пор не поддерживает onContextMenu.
Night_Wolf:
Спасибо!
Понял, надо смотреть в сторону event. Замечательная наверное штука:) Подскажите еще, пожалуйста, куда смотреть в сторонувыделения теста (onselectstart)?
srcElement?
Spectrum.Wolf:
Не совсем понял что тебе именно нужно. Контекстное меню - это только событие и перехватчик для него, которое возникает когда ты нажимаешь правую кнопку мыши, больше ты ничего с ним не можешь сделать. Если тебе нужно заменить его на свое меню, то тогда тебе просто нужно создать слой и отображать его в функции перехватчика, в зависимости от координат курсора (с поправкой на полосу прокрутки и видимую область страницы).
Night_Wolf:
В сообщении опечатался. Нет, своего меню мне не надо:) Сейчас разбераюсь как создать перехватчик выделения текста. Мне нужно, чтоб как вызов контекстного меню, так и выделение текста было возможно только для элементов формы.
oElement.onselectstart - было б хорошо, но скрипт не понимает данное свойство. Копаю, как усовершенствовать функцию, добавив к ней перехват выделения текста в INPUT.
Навигация
Перейти к полной версии