2017-02-02 6 views
2

Я пытаюсь написать плагин для браузера, который имеет две функции. Мне не нужен вход, мне нужно только вызвать функцию.Расширения Firefox - обнаружение, если кнопка нажата со сдвигом

Моя идея заключалась в том, что функциональность может быть достигнута путем удерживания shift - или нет - при нажатии на значок плагина. (ctrl будет делать эту работу)

Проблема в том, что firefox не дает мне какого-либо события, поэтому я не могу использовать event.shiftKey. Единственное, что дает firefox, это текущая вкладка, и она не содержит эту информацию. Вот то, что я до сих пор:

// manifest.json 
{ 

    "manifest_version": 2, 
    "name": "Link List", 
    "version": "1.0", 

    "background": { 
    "scripts": [ "background.js" ] 
    } 

    "browser_action": { 

    } 
} 


// background.js 
function openPage(tab) { 
    if(<shift pressed>) { 
    funcA(); 
    } else { 
    funcB(); 
    } 
} 

browser.browserAction.onClicked.addListener(openPage) 

Любые идеи, что я могу поставить в <shift pressed>?

Я не носителем языка, пожалуйста, поправьте меня, если я грамматика/орфографические ошибки

ответ

-1

Попробуйте использовать этот код:

var keys = []; 
document.onkeydown = function(e){keys[e.keyCode]=true;}; 
document.onkeyup = function(e){keys[e.keyCode]=false;}; 

... в расширении. Разверните его, как только ваше расширение будет работать на каждой новой странице. В вашем заявлении if вы можете использовать if(keys[16]) для shift, или if(keys[17]) для ctrl.

+0

Кажется, код выполнен до конца. Он всегда вызывает 'funcB()'. Вы говорите, что я должен поместить этот код в 'background.js' в верхнем правом углу? –

+0

Это способ захвата нажатий клавиш; Я не знаю, где вы поместили это в расширение. – Feathercrown

Смежные вопросы