2

나는 크롬 확장 프로그램을 구축하고있는 바로 가기 및 할당 명령 _execute_browser_action J+ Alt 키 합니다. 내가 _execute_browser_action 다른 명령의 바로 가기를 통해 호출 할트리거 Chrome 확장

chrome.commands.onCommand.addListener(function(command) { /* ... */ }); 

사용하는 모든 명령을 수신하는 background.js이 시뮬레이션 할, Cmd를 + 시프트 + K

말 제 발표문에서 json은 다음을 선언했습니다 :

이것은 내 background.js입니다. :

chrome.commands.onCommand.addListener(function(command) { 
    console.log('onCommand event received for message: ', command); 
    if (command === "asdf") { 
    alert("asdf"); 
    var keyPress = jQuery.Event("keypress"); 
    keyPress.altKey = true; 
    keyPress.ctrlKey = false; 
    keyPress.which = 74; 
    //how do I trigger this? 
    } 
}); 

내 popup.html이 열리도록이를 트리거하는 방법을 알고 싶습니다.

답변

1

직접 키보드 바로 가기를 실행할 수 없습니다. 그

생각해 이벤트의 타임 라인 등이 방법은 :

  1. 하드웨어 이벤트가 발생하고, 입력 이벤트에 OS로 변환된다.
  2. Chrome이 등록한 전체적인 바로 가기이거나 Chrome에 초점이 맞춰져있는 경우 OS는 Chrome에 이벤트를 발송합니다.
  3. Chrome이 등록 된 바로 가기인지 확인합니다. 예이면 해당 이벤트가 트리거됩니다.
  4. 바로 가기가 아니며 페이지에 포커스가있는 경우 Chrome은 DOM 입력 이벤트로 페이지에 이벤트를 전달합니다.
  5. 페이지에 jQuery가 있으면 해당 DOM 이벤트를 자체 내부 이벤트로 변환하고 리스너와 일치 시키며 내부 이벤트를 전달합니다.

코드는 5 개 (내부 jQuery 이벤트) 만 트리거합니다.
directly manipulating DOM events으로 최대 4 개까지 이동할 수 있습니다.
이 스택에서는 어떤 경우에도 확장이 3으로 돌아갈 수 없습니다.

코드에서 원형 교차로로 팝업을 열려고합니다. 슬프게도, 이것은 "일반"확장 프로그램의 경우 simply not possible at all입니다. 크롬 개발자 팀의 일부분에 대한 의식적인 결정입니다.

UI를 제공하는 다른 방법, 예를 들어 notifications을 생각하거나 현재 페이지에 무언가를 삽입하면 Content Scripts이됩니다.

관련 문제