google-chrome - 크롬 웹스토어 모바일 - Chrome 확장 프로그램에서 현재 탭의 URL을 가져 오는 방법은 무엇입니까?


3 Answers

친구가 내 질문에 답합니다.

먼저 탭 API에 대한 권한을 설정해야합니다.

"permissions": [
    "tabs"
]

그리고 URL을 저장하려면 :

chrome.tabs.getSelected(null,function(tab) {
    var tablink = tab.url;
});
Question

크롬 웹스토어 다운로드

Chrome 확장 프로그램을 재미있게 사용하고 있으며 변수에 현재 탭의 URL을 저장하는 방법을 알고 싶습니다.




문제는 chrome.tabs.getSelected가 비동기입니다. 아래의이 코드는 일반적으로 예상대로 작동하지 않습니다. getSelected가 값을 다시 설정하는 콜백을 아직 호출하지 않았으므로 'tablink'값은 콘솔에 기록 될 때 여전히 정의되지 않습니다.

var tablink;
chrome.tabs.getSelected(null,function(tab) {
    tablink = tab.url;
});
console.log(tablink);

해결책은 함수에서 값을 사용할 위치에서 코드를 래핑하고 getSelected에 의해 호출되도록하는 것입니다. 이 방법을 사용하면 코드가 실행되기 전에 값이 제공 될 때까지 기다려야하므로 항상 값을 설정해야합니다.

다음과 같이 시도해보십시오.

chrome.tabs.getSelected(null, function(tab) {
    myFunction(tab.url);
});

function myFunction(tablink) {
  // do stuff here
  console.log(tablink);
}



context menu api 사용하는 사람들은 탭 정보를 얻는 방법에 대한 문서가 즉시 명확하지 않습니다.

  chrome.contextMenus.onClicked.addListener(function(info, tab) {
    console.log(info);
    return console.log(tab);
  });

https://developer.chrome.com/extensions/contextMenus



Related