Все технические форумы на одном сайте Удобный поиск информации с популярных форумов в одном месте
Вопрос: Выведение кодов клавиш

Здравствуйте.  Пытаюсь написать программу: пользователь вводит в две строки какие-то слова (длина неважна). При нажатии на клавишу программа выводит код нажатых клавиш через запятую.
Для одной переменной у меня получилось, а вот для двух - никак.  Коды привожу ниже. 
Заранее спасибо за помощь
<html>
<script src="JavaScript Secret2.js"></script>
<body>
 <input> <br>
 <input> <br>
<input type="button" value="Сложить 2 два числа" onkeypress ="secret ();"> <br>
<div id="result"></div>
</body>

</html>

в JavaScript

function secret (){
    var e= event.keyCode;
    var c = event.keyCode;
    document.getElementById('result').innerHTML = (secret);
    
    
}
 
Ответ:
Здравствуйте.  Пытаюсь написать программу: пользователь вводит в две строки какие-то слова (длина неважна). При нажатии на клавишу программа выводит код нажатых клавиш через запятую.
Для одной переменной у меня получилось, а вот для двух - никак.  Коды привожу ниже. 
Заранее спасибо за помощь
<html>
<script src="JavaScript Secret2.js"></script>
<body>
 <input> <br>
 <input> <br>
<input type="button" value="Сложить 2 два числа" onkeypress ="secret ();"> <br>
<div id="result"></div>
</body>

</html>

в JavaScript

function secret (){
    var e= event.keyCode;
    var c = event.keyCode;
    document.getElementById('result').innerHTML = (secret);
    
    
}
 
Вопрос: Как установить код на сайт

Кто подскажет как установить код на сайт чтобы он работал?
Код Java(TM) 2 Platform Standard Edition 5.0
1
2
3
4
5
6
7
8
<script type="text/javascript">
    var _cp = {trackerId: 14031};
    (function(d){
        var cp=d.createElement('script');cp.type='text/javascript';cp.async = true;
        cp.src='//tracker.cartprotector.com/cartprotector.js';
        var s=d.getElementsByTagName('script')[0]; s.parentNode.insertBefore(cp, s);
    })(document);
</script>
На джумле такие коды устанавливались без проблем, тут же я не понимаю куда и как его вставить чтобы это заработало. Я много гуглил, говорят что такие коды следует вставлять в header.php, но мой header.php не похож на другие. Я нашел другой файл template.php где пристутствует /body, я пробовал вставлять код перед зарывающимся тегом /body, но результат нулевой. Ранее у меня была проблема с установкой онлайн консультанта Jivosite, который устанавливается по такому же принципу, тогда проблема решилась установкой модуля, который разработчики написали специльно для таких случаев.
Ответ: GradX, Все очень хорошо работает, подскажите как добавить этот код чтобы он работал только на главной странице? Наверняка по такому же принципу можно добавить, а то я вчера пытался найти главную страницу, 2 часа времени потратил так и не нашел.
Код PHPHTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
  if(is_home)
  {
?> 
<style>
      #block-main {
background: url(http://elo-boost.ru/wp-content/themes/yoo_nano2_wp/styles/wide/images/top.png), linear-gradient(to bottom, #000d1f 0, #000d1f 403px, white 421px);
background-repeat: no-repeat;
background-position: center top;
} 
    </style>
<?php
  }
?>
Этот код отвечает за выведение фона на главной странице.
Вопрос: Написать функцию-обработчик для события нажатия на клавишу

По нажатию пользователя на какую-либо клавишу на клавиатуре должно выдаваться сообщение о том, какую клавишу пользователь нажал. onkeydown
Ответ: AlexMoth, вот тоже примерчик:
Кликните здесь для просмотра всего текста
Код HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<html>
<head>
<title>Определение нажатой клавиши</title>
<meta charset="utf-8">
<script type="text/javascript">
function showKeyPress(evt)
{
alert("Вы нажали клавишу: \n" + String.fromCharCode(evt.charCode) + "\n");
}
</script>
</head>
<body  onkeypress="showKeyPress(event);">
</body>
</html>

Но есть одно НО, данный скрипт не позволяет обрабатывать нажатие функциональных клавиши(вроде ctrl, alt или F1) - зато показывает какие буковки или цихровки были нажаты...
Вопрос: Одновременное нажатие 2 клавиш + клик мыши

Всем - здравствуйте !
Второй день бьюсь с этой проблемой. Перечитал все что можно и даже смежные варианты рассматривал. Короче, задача такая. Есть изображение на странице без какой-либо прикрепленной активности. После нажатия клавиш Ctr + Q происходит изменение стиля. Отпускаем клавишу Q - возвращаем предыдущий стиль. С этим все понятно. Задача: после одновременного нажатия и удержания Ctr + Q (меняется стиль картинки) и дополнительного нажатия на левую кнопку мыши (обычный клик) должен произойти переход на другую страницу. Застопорился с реализацией этой строчки:

Javascript
1
2
3
4
5
    $('body').on('keydown click', function(e){
        var wk = false;
        if (e.keyCode == 81) { wk = true };
        if ( e.ctrlKey && wk == true && e.which == 1) {  alert('true') };
    };
Может надо временный массив создать? Я уже не знаю что делать. Если найдете синтаксическую ошибку - не критично. Я столько вариантов перелопатил, что мог ее допустить. Главное для меня - логика решения.
Окажите посильную помощь. Очень надо.
Ответ: Glart, спасибо за ответ! Я видел этот скрипт. В том то и фишка, что надо к клавишам прибавить клик мыши. Две клавиши сделать не проблема. Описать проблему лучше не смогу. Не работает 4 строка. А именно три условия в скобках if. Сейчас еще раз изучу предложенный вами вариант.

Добавлено через 3 часа 38 минут
Для чего это было задумано.
Идет реконструкция сайта на живом хостинге. Посетители заходят по известной им ссылке типа ххххх.ru и видят лого компании и сорри-текст. Уходят. А когда заходит заказчик, то совершая манипуляцию с клавишами и кликом мышки по логотипу, попадает на "стройплощадку" сайта. Такая вот прихоть. Надеюсь, кому-нибудь пригодиться.
P.S. стили убраны, дабы не засорять эфир

HTML5
1
2
3
4
<div>
    <img id="logo" border="0" src="logo.JPG" width="266" height="222" />
    <span>сайт на реконструкции</span>  
</div>
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
$(function($) {
 
// читаем (body), ожидаем действия (on) с событиями (keydown, keyup, click), 
// объявляем функцию для переменной (e, где e = событие от пользователя) 
    $('body').on('keydown keyup click', function(e){
// отключаем действия броузера по умолчанию
        e.preventDefault();
// объявляем новую переменную-тумблер (wk) 
// и присваиваем ей стартовое значение (false)          
        var wk = false;
// объявляем условие: если одновременно нажаты клавиша Ctr + клавиша Q 
// и событие у Q = keydown, то тумблер (wk) станет true 
        if ( e.ctrlKey && e.which == 81 && e.type == 'keydown' ) { wk = true };
// объявляем еще одно (основное) условие: 
// если тумблер (wk) имеет значение true, то есть пользователь Ctr + Q 
        if ( wk == true ) {
// тогда добавляем к картинке ( у которой id = img )атрибут (class) с именем (click)
            $('#img').attr('class', 'click');
// после появления у объекта (img) нового атрибутаб перечитываем (body) 
// и ожидаем действия (on) с событием (click) на объекте с классом (.click), 
// т.е. который мы только что добавили картинке (img)       
            $('body').on('click', '.click', function(){
// если событие произошло (нажаты Ctr + Q + Click по картинке), 
// то открываем в родном окне страничку с адресом (auth.html)
                location.assign('auth.html');
            });
// объявляем еще одно условие (в данном случае возвращаем все на исходную позию)
// если пришло событие (е) что клавиша Q поднята (keyup)
        }else if ( e.which == 81 && e.type == 'keyup' ){
// у картинки ( у которой id = img ) удаляем ПОЛНОСТЬЮ ранее присвоенный атрибут (class)   
            $('#img').removeAttr('class');
        };
    });
 
})(jQuery);
Добавлено через 13 минут
Кто подскажет как закрывать тему?
Вопрос: Меню списком в виде клавиш

Хочется сделать так, чтобы каждая строка меню была в виде прямоугольной области (типа клавиши) во всю ширину, а в зазорах между между ними чтобы просвечивал фон.

Код такой:
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<div class="Left_menu">
            <ul class="Left_menu_nomenclature"> 
                <li class="Left_menu_string">
                <img src="/my-design/left-menu.gif" alt="Новости"><a href="/novosti/">Новости</a>
                </li>
            </ul>
            
            <ul class="Left_menu_nomenclature">
                <li class="Left_menu_string"><img src="/my-design/left-menu.gif" alt="Компании"><a href="/kompanii/">Компании</a></li>
            </ul>
            
            <ul class="Left_menu_nomenclature">
                <li class="Left_menu_string"><img src="/my-design/left-menu.gif" alt="Проекты"><a href="/proekty/">Проекты</a></li>
            </ul>
</div>
CSS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
.Left_menu {display:table; background-color: #f4e7bd; margin: 0; width:100%;  border-radius:0.5em; padding:0.5em 0 0.5em 0; }
 
.Left_menu_nomenclature {display: table-row; }
 
.Left_menu_string {display:table-cell;vertical-align:middle; }
 
.Left_menu_string a{color:#420d00; font-family: Tahoma, Geneva, sans-serif; font-weight:bold; text-decoration:none; height:0px; padding-left:0.4em;}
 
.Left_menu_string a:hover { 
  /* при наведении ссылка становится */ 
  text-decoration: underline; /* подчеркнутой */ 
 }
 
.Left_menu_string img{width:5%; height:auto; padding-left:0.4em;}
Пытаясь добиться этого эффекта, добавлялись коды
CSS
1
2
    .Left_menu_nomenclature {width:100%; background-color: #30F; padding:10px;}
    .Left_menu_string {width:100%; background-color: #6F3; padding:10px;}
Но получается то, что на скриншоте.

Как исправить этот код?
Ответ: У меня сеть рвется ежеминутно, поэтому я пока не сумел в точности разобрать Ваш код, но суть Вашей идеи понял - отступами можно все отцентрировать и это дает возможность использовать блочный режим.

Но, к сожалению, главный вопрос остался в стороне: у Вас "клавиша" появляется при наведении курсора, а нужно, чтобы они были постоянно у каждой строки меню и между ними были просветы.

(как у рояля)

Добавлено через 32 минуты
Большое спасибо, я разобрался с проблемой с Вашей помощью!
Вопрос: Как определить нажата какая-либо клавиша или нет?

Как определить нажата какая-либо клавиша или нет?

То есть не при нажатии, а просто в куске кода на жаваскрипте. Что-нибудь типа IsKeyDown(); ?
Ответ:
Сообщение от subzey
ну, разве что, чтобы клавиши Win отслеживать. Или Esc мертвой клавишей делать а-ля-Никсы
не понял как твой ответ соотносится с моим вопросом
я подразумевал, чтобы foo() не принимала объект события.
ведь не всегда есть такая возможность
поэтому я в этом контексте, и говорю "а без рук"
Вопрос: Отмена mousemove при отпускании клавиши мыши

Привет всем, у меня такая проблема. я хочу чтоб событие mousemove переставало работать после того как я отпустил клавишу мыши. т.е. по нажатию клавиши запускаю mousemove, а вот как отменить его работу сообразит не могу.
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
$(document).on("touchstart  mousedown", methods.perToClass(settings.classWrapper), function(event) {
    //если касание, то вычисляем через event.originalEvent.touches[0]:
    if (event.type == "touchstart") {
        var touch = event.originalEvent.touches[0] || event.originalEvent.changedTouches[0];
        var offsetX = (touch.clientX - $(event.target).offset().left);
        var offsetY = (touch.clientY - $(event.target).offset().top);
    }
    else {
    //если нажата кнопка мышки:
        var offsetX = (event.offsetX || event.clientX - $(event.target).offset().left);
        var offsetY = (event.offsetY || event.clientY - $(event.target).offset().top);
    }
    if(offsetX < 150){
        document.ondragstart = function()
        {
            return false;
        }
        $(document).on("touchmove  mousemove", methods.perToClass(settings.classWrapper), function(event) {
                var offsetMoveX = (event.offsetX || event.clientX - $(event.target).offset().left);
                var offsetMoveY = (event.offsetY || event.clientY - $(event.target).offset().top);
                console.log(offsetMoveX);
        });
    }
    
 
    //mousemove
    //отменяем "всплытие сообщений", чтобы не вызывался клик на тач-устройствах.
    event.stopPropagation();
   /* event.preventDefault();*/
});
 
$(document).on("touchend  mouseup", methods.perToClass(settings.classWrapper), function(event) {
    document.ondragstart = function(){}
 
});
Добавлено через 1 час 12 минут
ну или подскажите, как сделать это более красиво, т.е. у меня задача если сместил на 100px в право запустить функцию.
Ответ:
Javascript
1
2
3
4
       
$('#element').on('mouseup', function(){
"Код"
});
При отпускании кнопки мыши mousemove и так перестает работать и выполняется после нее mouseup.
Вопрос: keydown и keyup не видят обычных буквенных клавиш

здравствуйте, такая проблемка...

данный код работает как надо:
document.getElementById('area').addEventListener('keydown', function (e) {
	if (e.ctrlKey)
		alert('event fired');
});


но стоит проверить ещё и какую-то другую клавишу, нничего не срабатывает:

document.getElementById('area').addEventListener('keydown', function (e) {
	var keyCode = e.keyCode || e.which;

	if (e.ctrlKey && keyCode == 98)
		alert('event fired');
});


подскажите пожалуйста в чём проблема
Ответ: оказывается и мой вариант работал, просто надо было в качестве кода указать другие цифры, а не те что в таблице кодов

document.getElementById('area').addEventListener('keydown', function (e) {
	var keyCode = e.keyCode || e.which;

	if (e.ctrlKey && (keyCode == 66 || keyCode == 73 || keyCode == 85))
		e.preventDefault();
});
Вопрос: Мобильная верстка. Клавиша "назад"

Привет.
У меня есть некоторая страница с кнопкой, и div, который спрятан за пределами видимости экрана. по нажатие клавиши div выезжает на весь экран.
Как реализовать, чтобы по нажатию клавиши "назад" в браузере (телефона) скрывался этот div?
Ответ: обычно клавиша назад работает с HTML History API, и если вам не лень, то можете и поэкспериментировать

хотя намного легче добавить (или не трогать) элемент пользовательского интерфейса с действием "прячущим" ваш div
Вопрос: Как отменить действие по нажатию клавиши.

Здравствуйте! Как отменить нажатие клавиши?
<div id="suggesstion-box" ></div>

$(document).ready(function(){
$('#EnterSite').click(function(e){ 
$.ajax(
{
 type: "POST",
url: "checkLogin.php",
data:'name='+Log,  
success: function(data)
{
$("#suggesstion-box").show();
var Sugg=$("#suggesstion-box").val();
$("#suggesstion-box").html(data);    
}
});	
 }); // end blur()
      }); // end script

Действие проиходящее в файле checkLogin.php

if(!empty($_POST["name"])) 
{
  if(strlen($_POST["name"])>2)
  {
   $result =$oracle->checkLog(.....,$_POST["name"]);
   if($result!=1) 
    {

	// если не равно 1 то запретить следующие действия  e.preventDefault();
	
    } 
  }
}
Ответ: son456,

Returning false from a jQuery-connected event handler is IDENTICAL to calling

e.preventDefault(); 
e.stopPropagation();


$( "#target" ).keyup(function() {
  	return false;
});


Добавьте проверку на то, что логин не состоялся в

success: function(data) {
}

и код, указанный выше.