2013-04-10 1 views
1

안녕하세요, 내 popup.js 파일에서 현재 탭의 현재 URL을 얻으려고하고 있습니다. 아래 코드는 내가 사용하고 있지만 어쨌든 작동하지 않습니다. 제발 저에게 잘못된 점을 알려주세요. 미리 감사드립니다.popup.js 파일의 현재 URL을 어떻게 얻을 수 있습니까?

function getAmazonURL() 
{ 
    alert("ok"); 
    $url = ""; 
    chrome.windows.getAll({ 
    }, function(windows) { 
     for (var i in windows) { 
      var tabs1 = windows[i].tabs; 
      for (var j in tabs1) { 
       var tab = tabs1[j]; 
       if(tab.active) 
       { 
        $url = tab.url;alert(tab.url); 
       } 
      } 
     } 
    }); 

} 

document.addEventListener('DOMContentLoaded', function() { 
    getAmazonURL(); 
}); 

답변

1

활성 탭을 얻으려면 chrome.tabs.query을 사용해야합니다. 예를 들어 :

chrome.tabs.query({active:true,currentWindow:true},function(tab){ 
    //Be aware that `tab` is an array of Tabs 
    console.log(tab[0].url); 
}); 
+0

안녕 @BeardFist는 답장을 보내 주셔서 감사하지만 난 코드 아래 사용하려고 할 때 팝업에서 나를 정의되지 않은 경고합니다. $ url = console.log (tab [0] .url); 알림 ($ url); –

+0

@ Keyur 당연히'undefined'를 경고합니다. 'console.log'는 아무것도 반환하지 않으므로'$ url'은 정의되지 않았습니다. – BeardFist

+0

@ Keyur 실제로 URL에 경고하지 않으셨습니까? 'alert (tab [0] .url)'먼저 로컬 변수를 저장할 필요가 없습니다 ... 그리고 팝업에서'alert' 대신에'console.log'를 사용하는 것이 더 유용하다는 것을 알았습니다 실행을 차단하지 않습니다. – BeardFist

0
function getAmazonURL() 
{ 
    $chromeurl = ""; 
    chrome.windows.getAll({ 
     "populate":true 
    }, function(windows) { 

     for (var i in windows) { 
      var tabs = windows[i].tabs; 
      for (var j in tabs) { 
       var tab = tabs[j]; 
       if(tab.active) 
       { 
        $chromeurl = tab.url; 
       } 
      } 
     } 
     alert($chromeurl); 

     return $chromeurl; 
    }); 
} 

document.addEventListener('DOMContentLoaded', function() { 
    getAmazonURL(); 
}); 
관련 문제