Отключен левый клик (для Psych Experiment), но фокус меняется в IE.Как предотвратить? - PullRequest
5 голосов
/ 21 февраля 2011

Я провожу некоторый эксперимент Psych по веб-дизайну и хочу отключить оба щелчка мышью.(Пожалуйста, не обращайте внимания на проблемы с юзабилити. Я знаю о них. Я намеренно делаю это для своего психологического эксперимента.)

Пока мне удалось отключить оба клика в Firefox, Chrome и Safari.В IE, однако, когда я щелкаю левой кнопкой мыши, фокус все еще меняется на место, где я щелкнул.Я хочу, чтобы остановить это поведение (т.е. фокус остается на месте, прежде чем я нажму).Не имеет значения, выдает ли система оповещение или нет, потому что я все равно буду использовать оповещение.

Я ценю, если некоторые из вас могут мне помочь.Обратите внимание, что я не могу использовать JQuery.Мой экспериментальный инструмент не может хорошо обрабатывать JQuery.

<html>
    <head>
    </head>
    <body>
        <div>
            <select>
                <option> aa </option>
            </select>
        </div>
        <div>
            <select>
                <option> aa </option>
            </select>
        </div>

        <script type="text/javascript">

             function mousehandler(){
                alert("For the purpose of psych experiment, you can't use mouse.");
                return false;   
             }
             document.oncontextmenu = mousehandler;
             document.onmousedown = mousehandler;
        </script>
    </body>
</html>

1 Ответ

1 голос
/ 21 февраля 2011

Не уверен, почему IE8 делает это, но если вы устанавливаете второй выбор, чтобы иметь фокус при загрузке страницы, то в вашей функции mousehandler(), если вы добавляете setTimeout(function(){document.getElementsByTagName("select")[1].focus();},1); до возврата false, вы можете дать второму выбору это сосредоточиться назад. Затем кажется, что он никогда не терял фокус при первом выборе.

Причина setTimeout() заключается в том, что без него первый выбор получит фокус.

function mousehandler(){
    alert("For the purpose of psych experiment, you can't use mouse.");
    setTimeout(function(){document.getElementsByTagName("select")[1].focus();},1);
    return false;   
}

РЕДАКТИРОВАТЬ: jsFiddle пример

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...