<HTML><HEAD><TITLE>TEST</TITLE>
<STYLE>
body{background-color:#ffffff;
color:#000000;
font-family:Lucida Console;}
a:link{color:#c0c0f0;
text-decoration:none;}
a:visited{color:#c0c0f0;
text-decoration:none;}
a:hover{color:#f0c0c0;
text-decoration:none;}
a:active{color:#c0c0f0;
text-decoration:none;}
.menu{background-color:#000000; color:#ffffff; width:18%;}
</STYLE>
<SCRIPT>
function menuRun(){
with(document.all.menu.style){
left=clientX;
top=clientY;
if(button===2) visibility="visible";
else visibility="hidden";
}
document.onclick=menuRun;
</SCRIPT>
</HEAD>
<BODY>
Всякий текст...
<DIV id="menu" class="menu">
MENU<BR>
<A href="http://dust.jino-net.ru/">DUST</A>
<A href="http://f1restarter.narod.ru/">FIRESTARTER</A>
</DIV>
</BODY>
</HTML>
JavaScript...
Код:
При клике левой клавишой мыши меню должно изчезать,а при клике правой появляться и перемещаться на место,где произошёл клик.
Эта страница тут.
onClick="menu.style.display='block';">[/html]
появляться и исчезать будет, а вот с перемещением у меня что-то неполучилось...
Кстати, неработает в NN и Opera !
1. для перемещения по окну, к классу .menu нужно будет добавить position:absolute; , но для перемещения в то место где произошел клик не помогает (проблема в том, что у меня что-то неполучается с clientX и clientY)
2. вызывать функцию нужно так: menuRun[color=red]()[/color]
1. Скобка не закрыта ({), открывается 2, а закрывается одна
2. document.onclick=menuRun;
2.1 document.onclick - что - то я за свою практику такого не встречал.
2.2 menuRun; - вызов функции будет происходить только когда указано menuRun();
2.3 правильно <body onclick="menuRun();">
3. document.all - будет работать только в ie, а в других браузерах нет
Будь внимателен.
<STYLE>
.menu {position:absolute;}
</STYLE>
[/html]
это под FF:
[html]
<BODY oncontextmenu="menu.style.display='none'; return false;"
onClick="menu.style.display='block';
menu.style.left=event.pageX;
menu.style.top=event.pageY;">
[/html]
а это под IE:
[html]
<BODY oncontextmenu="menu.style.display='none'; return false;"
onClick="menu.style.display='block';
menu.style.left=event.x;
menu.style.top=event.y;">
[/html]
Будь внимателен.[/QUOTE]вечно у меня с этими скобками проблемы... И объект event забыл указать.
В воскресенье всё исправлю и посмотрю,что получится.
Ещё вопросы:
Как узнать id элемента
вызвашего событие? Есть ли для этого специальный метод?
Как узнать id элемента
вызвашего событие? Есть ли для этого специальный метод?[/QUOTE]
Метод есть: document.getElementById(id);
где id - это id элемента, чьи свойства надо получить или изменить.
где id - это id элемента, чьи свойства надо получить или изменить.[/QUOTE]
Дык id не известен. Его ещё надо узнать. Допустим на странице несколько элементов <div id="*">. Нужно присвоить переменной "х" id элемента,по которому произошел клик.
А getelementbyld() вроде не работает в IE.
document.getElementById(id); не работал в ie4, а в ie5 и выше работает.
[QUOTE=FIRESTARTER]Дык id не известен. Его ещё надо узнать. Допустим на странице несколько элементов <div id="*">. Нужно присвоить переменной "х" id элемента,по которому произошел клик.[/QUOTE]
А если писать так:
Код:
<script>
function doThimThing(id){
document.getElementById(id).style.color="red";
}
</script>
<div id="documID1" onclick="doThimThing(documID1)">Hello world</div>
function doThimThing(id){
document.getElementById(id).style.color="red";
}
</script>
<div id="documID1" onclick="doThimThing(documID1)">Hello world</div>
Щелкни на фразу "Hello world" и функция doThimThing(id) узнает id элимента.
Если ты заранее не знаешь сколько элиментов будет в документе, то используй объектную модель документа, т.е пройди весь документ с начала и до конца, а потом работай с полученными данными.
Вот код:
Код:
<SCRIPT>
function menuRun(){
with(document.all.menu.style){
left=event.x;
top=event.y;
if(event.button==2) visibility="visible";
else visibility="hidden";
}
}
document.onclick=menuRun;
</SCRIPT>
function menuRun(){
with(document.all.menu.style){
left=event.x;
top=event.y;
if(event.button==2) visibility="visible";
else visibility="hidden";
}
}
document.onclick=menuRun;
</SCRIPT>
Сделал ещё такую-же страницу,где можно проверить,перемещается ли меню при клике: http://f1restarter.narod.ru/files/test_2.html
Появилась ещё одна проблема: нужно чтобы при клике правой не открывалось контекстное меню. Т.е. наверное надо имитировать нажатие клавиши "Esc". Как это сделать?
повторяюсь:
<BODY oncontextmenu="return false;">
<BODY oncontextmenu="return false;">[/QUOTE]
Пардон,пропустил сообщение... Попробую.
И всё-же,как имитировать нажатие клавиш клавиатуры (или комбинации клавиш)?
И всё-же,как имитировать нажатие клавиш клавиатуры (или комбинации клавиш)?[/QUOTE]
В JavaScript есть возможность выключать клавиши или наоборот проверять комбинации клавиш (т.е. ты можешь сделать, что бы твой сайт работал от кнопок), посмотри спецификацию, там все написано.
document.onclick - что - то я за свою практику такого не встречал.
[/QUOTE]
Кстати работает.
Это указатель функции. Пишется без скобок. Со скобками наверное тоже будет работать,но тогда функция будет пытаться присвоить результат выполнения "документ.онклику" .
Кстати,страница работает как задумано.
страница работает как задумано.[/QUOTE]
Незнаю как у тя, а у меня в FF неработает...
[QUOTE=FIRESTARTER]Кстати,
Незнаю как у тя, а у меня в FF неработает...
[quote=skywalker]Смотри спецификацию...[/quote]
А где в сети есть полный справочник по JS? Искал,но попадаются только основы. Про генерацию событий клавиатуры ничего нет.
А где в сети есть полный справочник по JS? Искал,но попадаются только основы. Про генерацию событий клавиатуры ничего нет.[/QUOTE]
поищи accesskey (это в html).
Код:
<script>
function doThimThing(id){
document.getElementById(id).style.color="red";}</script>
<div id="documID1" onclick="doThimThing(documID1)">Hello world</div>
function doThimThing(id){
document.getElementById(id).style.color="red";}</script>
<div id="documID1" onclick="doThimThing(documID1)">Hello world</div>
Щелкни на фразу "Hello world" и функция doThimThing(id) узнает id элимента.
[/QUOTE]
Дык ты же сам послал значение id в функцию (onclick="doThimThing(documID);" ),а не она сама узнала.
Мне нужно чтобы при нажатии на ссылку(exe файл) он сразу открывался, а не предлогал сохранить или открыть.
Мне нужно чтобы при нажатии на ссылку(exe файл) он сразу открывался, а не предлогал сохранить или открыть.[/QUOTE]
Это сделать невозможно
А где в сети есть полный справочник по JS? Искал,но попадаются только основы.
[/QUOTE]
http://forum.ixbt.com/topic.cgi?id=24:7801
[QUOTE=FIRESTARTER]
Про генерацию событий клавиатуры ничего нет.
[/QUOTE]
Горячие клавиши нужно что ли? Ну типа вот такое есть:
http://www.help-ru.nm.ru/mvw/index.htm
Это можно, а вот получить скан-код с клавы видимо нельзя ((
Я хочу JavaScriptом нажимать клавиши на клавиатуре (всякие там "esc", "F11"...),т.е. имитировать события клавиатуры.
Ясно. Нет, так нельзя. И совершенно правильно, а то представь себе ситуацию, когда при заходе на какой либо сайт JS скрипт сам начнет набивать текст на клаве и отдавать команды системе. Было бы неприятно и лишняя помощь хакеру. Поэтому этого нет.
А как разворачивают окно во весь экран (как это делает клавиша F11)?
Хотя не исключаю, что в каком нибудь ActiveX это и можно сделать... но собственно именно поэтому эту фигу ослика и отрубаю. Да и пользуюсь Оперой.