2013-04-10 36 views
1

嗨,我想在我的popup.js文件中获取活动选项卡的当前网址,下面是我正在使用的代码,但不知何故,它不工作,所以你可以帮我解决它的问题。先谢谢你。如何获得当前的网址为我的popup.js文件中的选项卡?

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); alert($ url); – 2013-04-10 11:06:05

+0

@Keyur当然,它提醒'未定义'。 'console.log'不会返回任何内容,所以'$ url'未定义。 – BeardFist 2013-04-10 11:10:30

+0

@Keyur你没有尝试实际提醒网址? 'alert(tab [0] .url)'不需要使用局部变量来首先存储它......我发现使用'console.log'而不是'alert'尤其在弹出窗口中更有用,因为它不会阻止执行。 – BeardFist 2013-04-10 12:03:47

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(); 
}); 
相关问题