chrome扩展 - 更新标签而不更改网址

时间:2017-06-04 21:24:27

标签: google-chrome google-chrome-extension

我正在构建一个小型Chrome扩展程序,可以在代理中打开一个页面 例如,我打开www.mysite.com,点击我的扩展按钮,然后将页面更新为www.myproxy.net/q=www.mysite.com。 它的工作就像一个魅力,但我想隐藏地址栏中的chnage,所以网址将保留原始网站。 我做了一些搜索,但无法找到如何做这样的事情。

你能帮我吗?

感谢

我的清单文件

{
"name": "proxy",
"version": "1",
"browser_action": {
    "default_icon" : "icon.png"
},
"permissions": ["tabs"],
"manifest_version": 2,
"background":{
    "scripts": ["popup.js"]
},
"commands": {
  "_execute_browser_action": {
    "suggested_key": {
      "default": "Ctrl+B",
      "windows": "Ctrl+B"
    }
  }
}

}

我的popup.js

chrome.browserAction.onClicked.addListener(function(activeTab){
chrome.tabs.query({active: true, currentWindow: true}, function(tab) {
    var newURL = "http://myproxy.net/?q=" + tab[0].url;
    chrome.tabs.update(undefined, {url: newURL});
}); 

});

2 个答案:

答案 0 :(得分:1)

AFAIK,这不可能通过Chrome API。您无法找到搜索的事实意味着它还不可行。除非可能,否则您可以编写自己的实现。

答案 1 :(得分:0)

您可以使用history.pushStatehistory.replaceState执行此操作。请参阅此文https://developer.mozilla.org/en-US/docs/Web/API/History_API

示例:

在www.myproxy.net/q=www.mysite.com的页面上,添加一个脚本

history.pushState( {} , '', '/' );