2013-07-24 2 views
2

사용자가 입력 한 키워드에 대한 응답으로 현재 탭을 browser_action Chrome 확장 프로그램의 URL로 이동하려고합니다. 이 작업을 수행하는 가장 좋은 방법은 무엇입니까?browser_action 크롬 확장 프로그램의 현재 탭 window.location.href 설정

처음에는 자바 스크립트로 간단한 폼을 시도했지만 executeScript를 사용하지 않았기 때문에 javacript가 현재 탭에서 window.location.href를 설정하지 않는다는 것을 깨달았습니다.

지금까지 내가 찾은 가장 좋은 방법은 사용하는 executeScript입니다 :

    :

    "permissions": [ 
        "tabs", 
        "http://*/", 
        "https://*/" 
    ], 
    

    문제가있다 :이 또한 매니페스트에 권한을 추가 포함

    chrome.tabs.executeScript(null, {code:"window.location.href = '" + url + "';"}); 
    

  1. 이 접근법은 newtab 페이지에서 작동하지 않습니다. ("chrome : // * /"을 추가하면 확장이 중단되고 설치되지 않습니다.)

  2. 모든 프로토콜 유형에 대해 명시 적으로 권한을 설정해야합니다. 그렇지 않으면 일부 유형의 페이지에서 확장이 작동하지 않습니다 .

Chrome 탭이 열려있는 탭을 browser_action 팝업의 특정 페이지로 이동하는 더 강력한 방법이 있습니까?

답변

5

콘텐츠 스크립트 나 호스트 권한이 필요하지 않습니다.

chrome.browserAction.onClicked.addListener(function(tab) { 
    chrome.tabs.update(tab.id, { 
     url: url 
    }); 
}); 
+0

감사합니다, 나는 널 (null)이 현재 탭에 기본 설정됩니다되는 tab.id이 답변에 추가해야합니다 : 그냥 chrome.tabs.update가합니다 (tabs 권한이 필요하지 않습니다)를 사용합니다. –

관련 문제