我正在构建一个小型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});
});
});
答案 0 :(得分:1)
AFAIK,这不可能通过Chrome API。您无法找到搜索的事实意味着它还不可行。除非可能,否则您可以编写自己的实现。
答案 1 :(得分:0)
您可以使用history.pushState
或history.replaceState
执行此操作。请参阅此文https://developer.mozilla.org/en-US/docs/Web/API/History_API
示例:
在www.myproxy.net/q=www.mysite.com的页面上,添加一个脚本
history.pushState( {} , '', '/' );