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

Программирование на jquery
Ответить
Гость
 Переопределение существующего прослушивателя событий нажатия клавиш с помощью пользовательского скрипта

Сообщение Гость »


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

Вот сценарий:

// ==UserScript== // проверка @name // тест @author // @версия 1.1.5 // @match *://*.example.com/* // @require https://ajax.googleapis.com/ajax/libs/j ... ery.min.js // ==/Пользовательский скрипт== /* глобальные переменные $ */ document.addEventListener('keydown', function(e){ if (e.ctrlKey && !e.shiftKey && !e.altKey && !e.metaKey) { переключатель (e.keyCode) { случай 37: предупреждение('37'); // Код JQuery для изменения страницы перерыв; случай 39: предупреждение('39'); // Код JQuery для изменения страницы перерыв; } } }, истинный); Тестирование проводится следующим образом:

var script = document.createElement('script'); script.type = 'текст/javascript'; script.src = 'https:// Third-party.example.com/js/jwplayer8/jwplayer.core.controls.html5.js'; document.getElementsByTagName('head')[0].appendChild(скрипт); script.onload = функция() { Оповещение('загружено'); } Элементы управления Jwplayer представляют собой простой переключатель и вызывают те же клавиши, что и я, среди прочего: клавиши 37 и 39. Изменение клавиш, которые я наблюдаю, на что-то другое ничего не меняет.
>
Когда игрок не в фокусе, все работает как положено. Когда проигрыватель запускается и фиксирует нажатие клавиши, это нарушает пользовательский скрипт.

При загрузке страницы скрипт сайта загружается дважды. Сначала открывается диалоговое окно, просто говорящее «загружено», как и должно быть. Однако при второй загрузке диалоговое окно, в котором все еще написано «загружено», теперь имеет заголовок «На странице https:// Third-party.example.com написано:» вместо заголовка, как раньше.

Аналогично, использование сочетаний клавиш Ctrl + Стрелка (влево или вправо) дает идентичные результаты. В предупреждениях указывается либо только «37», либо «39», как и должно быть, а диалоговое окно не имеет заголовка, как и ожидалось.

Однако, как только jwplayer оказывается в фокусе, в диалоговом окне отображается сообщение о загрузке скрипта. Заголовок становится «На странице https:// Third-party.example.com написано:», а затем либо «37», либо «39» в качестве информации внутри.

Мой первоначальный план состоял в том, чтобы просто отключить jwplayer, но учитывая, что предупреждения выполняются правильно, а любой код, следующий за ними, нет, это усложнило задачу.
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Jquery»