在Javascript中从Chrome扩展程序中获取标签网址

时间:2012-08-03 19:08:36

标签: javascript google-chrome google-chrome-extension popup

我试过环顾Stackoverflow但却找不到具体的内容。

所以基本上,我的网站共享页面是这样的:

http://domain.com/share.php?link=http://sharing.url

我的扩展程序是这样的:

{
 ...
  "browser_action": {
   "default_icon": "icon.ico",
   "default_popup": "schare.html"
 }
...
}

schare.html:

<style>
body, html{
margin:0;
padding:0;
}
iframe{
    width:520px;
    height:200px;
    margin:0;
}
</style>
<iframe id="iframes" frameborder="0"></iframe>
<script type="text/javascript" src="popup.js"></script>

和popup.js:

document.getElementById("iframes").setAttribute("src", "http://domain.com/share.php?link="+location.href+"");

但那是错误的网址。如何在不做任何花哨的事情的情况下获取标签网址?

2 个答案:

答案 0 :(得分:1)

如果当前窗口中有一个选项卡数组而不只是一个选项卡,则下面的代码可能无效。这是修改后的版本

chrome.tabs.query({active : true, currentWindow: true}, function (tabs) { var tab = (tabs.length === 0 ? tabs : tabs[0]);
var activeTabUrl = tab.url; });

答案 1 :(得分:0)

您可以致电chrome.tabs.query获取当前有效的标签。回调函数将接收reference to the tab作为参数。

因此,要获取活动标签的URL,您可以使用:

chrome.tabs.query({active : true, currentWindow: true}, function (tab) {
    var activeTabUrl = tab.url;
});

请注意,getCurrent()方法使用回调,因此请勿尝试在线性代码中使用。