Мне нужно вывести на странице вместо контекстного меню шуточное сообщение. Покопавшись в сети, соорудил скрипт, который правильно работает в IE и NN, в Мозилле же выдаёт мой алерт вместе с контекстным меню, а в Опере вообще не работает. Никакой инфы на мою тему по этим браузерам я пока не нашёл.
Вот скрипт:
CODE:<script type="text/javascript">
var message="Здрасте-мордасти, скрипт-скрипт!\n\nВход не для всех.\nТолько для сумасшедших.";
var e
function myclick(e) {
if (document.all)
{if (event.button == 2)
{alert(message);return false;}
}
else {
{if (e.which == 3)
{document.body.setAttribute("oncontextmenu", "return false;");
alert(message);return false;}
}
}
}
if (!document.all)
{document.captureEvents(Event.MouseDown);}
document.onmousedown=myclick;
</script>
(Добавление)
Капельку улучшил скрипт. Теперь в Мозилле контекстное меню появляется по крайней мере после закрытия алерта, а не одновременно. Но всё равно выскакивает, зараза.
CODE:<script type="text/javascript">
var message="Здрасте-мордасти, скрипт-скрипт!\n\nВход не для всех.\nТолько для сумасшедших.";
function myclickIE() {
if (document.all)
{if (event.button == 2)
{alert(message); return false;}
}
}
function myclickNS(e) {
if (document.layers||(document.getElementById&&!document.all))
{if (e.which==2||e.which==3)
{alert(message); return false;}
}
}
if (document.layers)
{document.captureEvents(Event.MOUSEDOWN);document.onmousedown=myclickNS;}
else{
if(!document.all){document.onmouseup=myclickNS} else{document.onmousedown=myclickIE;}
}
document.oncontextmenu=new Function("return false")
</script> (Отредактировано автором: 05 Июня, 2007 - 18:32:02) |