Отправить Глобальное нажатие клавиши, используя JavaScript в FireFox / Greasemonkey - PullRequest
3 голосов
/ 25 июня 2011

В настоящее время у меня есть сценарий GM, который фиксирует нажатие клавиши и программно щелкает элемент на веб-странице. Однако это работает только тогда, когда страница / вкладка имеет фокус. Есть ли способ зафиксировать нажатие клавиши со второй страницы / вкладки и применить щелчок к элементу на первой странице / вкладке? Я знаю, что могу получить ссылку на другое окно, открыв его в JavaScript. Однако я не могу получить доступ к элементам в этом окне, если оно находится в другом домене. Если я не могу сделать это, используя Greasemonkey, любые предложения о том, как сделать это как расширение вместо сценария GM. На самом деле, этот вопрос больше о том, как получить ссылку на открытую вкладку / окно в скрипте GM или как расширение.

Вот пример кода, с которым я работаю:

function dispatchMouseEvent(target, event) {

  var e = document.createEvent("MouseEvents");
  e.initMouseEvent(event, true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);  
  target.dispatchEvent(e);

};

function mouseClick(element) {

    dispatchMouseEvent(element, 'mouseover');
    dispatchMouseEvent(element, 'mousedown');
    dispatchMouseEvent(element, 'click');
    dispatchMouseEvent(element, 'mouseup');
}

Ответы [ 2 ]

2 голосов
/ 25 июня 2011

Это не может быть сделано в JS или Greasemonkey, по замыслу. Раньше это была огромная дыра в безопасности. Вам нужно будет написать расширение (дополнение).

Вот некоторые дополнительные ресурсы, которые я нашел полезными:

0 голосов
/ 25 июня 2011

Можете ли вы предшествовать вашему скрипту GreaseMonkey вызовом javascript для window.focus()?

...