Javascript-форум (https://javascript.ru/forum/)
-   Opera, Safari и др. (https://javascript.ru/forum/css-html-browser/)
-   -   нажать кнопку не мышкой (https://javascript.ru/forum/css-html-browser/30790-nazhat-knopku-ne-myshkojj.html)

illinois 16.08.2012 00:12

нажать кнопку не мышкой
 
Здравствуйте.
Возможно ли написать яваскрипт *.js для Оперы
чтобы при нажатии, например, кнопки "ентер"
например, на этом сайте нажалась кнопка "новая тема"?

bes 16.08.2012 17:15

можно просто по нажатию вызывать обработчик нужного события этой кнопки или что имеется в виду

illinois 16.08.2012 18:11

Вот например я хотел бы Нажать "энтер" и чтобы после этого нажалась кнопка "ответить", я правда языка совтем не заю:

(function(){
	    document.onkeyup = function (e) {
	    e = e || window.event;
	    if (e.keyCode == 13) {
		document.getElementById("Ответ").click();
		}
	    return false;
	}
})();

всё это в файле *.js, в папке пользовательских скриптов, яваскрипт в Опере включен.
Только не работает. Что я не так сделал?

Deff 16.08.2012 18:18

Цитата:

Сообщение от illinois
всё это в файле *.js, в папке пользовательских скриптов, яваскрипт в Опере включен.

Наверно на странице нет еще элемента - к котору скрипт подключает обработчик - перекиньте скрипт вниз страницы или установите его скриптом через write

bes 16.08.2012 18:21

<button id="but">press Enter</button>

<script>
window.onload = function () {
	var but = document.getElementById("but");
	
	but.onclick = function () {
		alert('clicked');
	}
	
	document.onkeyup = function (e) {
		e = e || event;
		if (e.keyCode == 13) {
			but.click();
		}
	}
	
}
</script>

illinois 16.08.2012 19:03

А как нажать кнопку "Ответить" под последним сообщением на этом форуме.
созад файл *.js с таким кодом:
window.onload = function () {
    var but = document.getElementById("Ответ");
     
    but.onclick = function () {
        alert('clicked');
    }
     
    document.onkeyup = function (e) {
        e = e || event;
        if (e.keyCode == 13) {
            but.click();
        }
    }
     
}

При нажатии "энтер" ничего не происходит?

bes 16.08.2012 19:11

Вы собрались воздействовать на элементы страниц этого форума

Deff 16.08.2012 19:15

illinois,
Во первых - с чего вы взяли что там элемент document.getElementById("Ответ") ???

illinois 16.08.2012 19:26

bes, Это только для примера, я хотел узнать как нажать кнопку которую нажимают мышкой, клавишами клавиатуры, используя пользовательский яваскрипт в Опере.

Deff, Я плохо разбираюсь.

bes 16.08.2012 19:44

если не запрещено всплытие, можно отловить на body через target
<body>
<div class="div1">click</div>
<div class="div2">click</div>

<script>
document.body.onclick = function (e) {
	e = e || event;
	var target = e.target || e.srcElement;
	alert(target.className + ';' + target.innerHTML)
}
</script>


Часовой пояс GMT +3, время: 16:29.