몇 가지 접근 방식을 찾았지만 구식 인 것처럼 보이거나 단순히 나를 위해 어떤 이유로 작동하지 않습니다. 아마 터널 비전 : 첫 번째크롬 확장에 대한 현재 (활성) 탭의 URL 가져 오기
우선 일 : 나는에 올바른 사용 권한이
내 manifest.json
, 내 생각 :
"permissions": [
"tabs",
"activeTab"
]
내가 제대로 인식이 간단한 스크립트, background.js
및 content.js
(즉,이 오류는 여기에있을 수 없습니다). 내 background.js
에서
내가 여러 가지 방법 시도 : 다음
chrome.browserAction.onClicked.addListener(buttonClicked);
var sharedUrl;
function buttonClicked(tab) {
chrome.tabs.getCurrent(function(tab) {
// please read further, this was my last resort, I tried other stuff as well
sharedUrl = console.log(window.location.href);
});
let msg = {
txt: "Hello",
url: sharedUrl
}
chrome.tabs.sendMessage(tab.id, msg);
}
내가
getCurrent()
와 그것을 시도
및 tab.url
을,하지만 작동하지 않았다 (어느 쪽도 tab[0].url
으로 나뿐만 아니라 getSelected()
과 또한 그것을 시도하지
chrome.tabs.query({active: true, currentWindow: true}, function(arrayOfTabs) {
var activeTab = arrayOfTabs[0];
});
및 내 content.js
은 단순히 여기에 있습니다 :
chrome.runtime.onMessage.addListener(gotMessage);
function gotMessage(message, sender, sendResponse) {
console.log(message.txt);
console.log(message.url);
}
"Hello"가 표시되지만 찾고자하는 URL은 표시되지 않습니다.
편집 : 내 확장 프로그램에서 버튼을 누른 후에 URL을 검색하고 싶을 수도 있습니다.
의견 및 도움에 감사드립니다.
'tabs.getCurrent에 대한 응답 오류 : TypeError : 'undefined의 URL'속성을 읽을 수 없습니다. ' – DasSaffe
파일에서 코드를 사용하고 있습니까? –
background.js, 왜냐하면 button.Click 후 content.js로 보내야합니다. – DasSaffe