Java



Контекстное меню для Netscape Navigator и Internet Explorer - часть 3


if( document.all ) {

} else if( document.getElementById ) { document.captureEvents( Event.MOUSEMOVE ); document.onmousemove = getCoord; }

Я стал отслеживать каждое передвижение мыши на экране и записывать координаты курсора в глобальные переменные:

var mouseX; var mouseY;

function getCoord( event ) { mouseX = event.pageX; mouseY = event.pageY; }

Теперь соберу саму функцию отображения меню:

function myfunction() { if( document.all ) { if( event.button == 2 event.button == 3 ) { if( !document.all.contextmenu ) return; var menu = document.all.contextmenu; menu.style.left = event.offsetX; menu.style.top = event.offsetY; menu.className = menuState ? "hidemenu" : "showmenu"; menuState = !menuState; } } else if ( document.getElementById ) { if( !document.getElementById( "contextmenu" ) ) return; var menu = document.getElementById( "contextmenu" ); menu.style.left = mouseX; menu.style.top = mouseY; menu.className = menuState ? "hidemenu" : "showmenu"; menuState = !menuState; return false; } }

Чтобы разобраться в Функции, не требуется особых навыков в JavaScript. Устанавливается положение меню на основе координат курсора с ветвлением на два браузера. Разница лишь в том, что Internet Explorer получает координаты из события event, а Netscape Navigator из глобальных переменных. Если вы правильно собрали скрипт - у вас должно получиться нечто подобное:

<html> <head> <meta http-equiv="Content-type" content="text/html; charset=Windows-1251"> <title>Context menu</title> <style type="text/css"> <!-- .hidemenu { display: none; position: absolute; } .showmenu { display: block; position: absolute; } //--> </style>

<script language="JavaScript" type="text/javascript"> <!-- if( document.all ) { document.onmousedown = myfunction; } else if( document.getElementById ) { document.captureEvents( Event.MOUSEMOVE ); document.onmousemove = getCoord; }




Содержание  Назад  Вперед