2014-09-28 4 views
0

머리말 : 저는이 물건의 초보자입니다.크롬 확장 프로그램에서 URL 전환

현재 탭 URL을 미리 정의 된 URL로 바꾸는 확장 프로그램을 만들려고합니다.

chrome.tabs.getSelected(null, function(tab){ 
     chrome.tabs.update(tabs.id, {url: "https://www.wikipedia.org/"}); 
    }); 

크롬 응용 프로그램 개발자 도구 '탭이 정의되지 않은 "하지만 난 내 매니페스트 권한의"탭 "을 가지고 저에게 말한다 : 지금까지 나는 다음 있습니다. 매니페스트 :

"permissions": [ 
    "tabs", 
    "declarativeContent", 
    "https://www.wikipedia.org/" 
], 

"background": { 
    "scripts": ["background.js"], 
    "persistent": false 
}, 

"browser_action": { 
    "default_icon": "icon-19.png", 
    "default_title": "Simple-Switch" 
} 
+0

아마도 컨텍스트 스크립트에서이를 실행하려고합니다. 옳은? – Xan

+0

컨텍스트 스크립트에서 실행하려고하는지 알 수 없습니다. 매니페스트 파일과 자바 스크립트 파일이 있습니다. 내가 게시 한 상위 하나는 javascript에 있고 낮은 하나는 매니페스트에 있습니다. –

+0

다음에 매니페스트를 게시하십시오 – Xan

답변

2

권한이 사용할 수있는 변수를 선언하지 않습니다 (이 마치를에 "var tabs"); 그들은 어떤 기능을 사용할 수 있는지 정의합니다 (이 경우에는 chrome.tabs에서 함수를 호출 할 수 있습니다).

귀하의 문제는 귀하의 콜백이 tab의 인수를 취하지 만, 변수 tabs을 사용한다는 것입니다. 따라서 "탭이 정의되지 않았습니다". 따라서 가장 간단한 수정은 function(tabs)입니다. 하지만 당신은 대신 사용되지 않는 tabs.getSelectedtabs.query를 사용한다 : 또한 activeTabtabs 권한을 변경할 수 있습니다

chrome.tabs.query({active:true,currentWindow:true}, function(tabs){ 
    chrome.tabs.update(tabs[0].id, {url: "https://www.wikipedia.org/"}); 
}); 

.

+0

D' oh! 'chrome.tabs'를 사용할 수 없다는 사실을 혼동하기 쉽기 때문에 좋은 생각, @ Teepeemm. 오타로 투표하기로 결정했습니다. – Xan

+0

@Xan 오타가 근본 원인이라는 데 동의하지만이 문제를 해결할 수 있는지 확실하지 않습니다. 문제의 일부는 OP가 적절한 오류 메시지를 보았지만 잘못 해석했습니다 ("내 매니페스트에 탭이 있습니다"). 그것을 보는 또 다른 방법은 누군가가''permission ":''foo.id''의 존재를 암시한다고 생각한다면 될 것입니다. – Teepeemm

+0

@Teepeemm 감사합니다 !! 좋은 하루 보내세요. –

관련 문제