我实际上想要使用更复杂的URL重写,但为了简单起见,我现在想要完成一些更基本的东西。因此,如果我在https://www.google.com并点击了我的扩展程序的按钮,我希望它打开一个包含http://www.google.com/images
的新标签页我发现了有关获取网址和打开新标签的单独问题,但我找不到任何关于合并这两个标题的内容。
这就是我现在所拥有的:
的manifest.json:
{
"manifest_version": 2,
"name": "Rewrite",
"version": "0.1",
"browser_action": {
"default_icon": "icon.png"
},
"background": {
"scripts": ["background.js"],
"persistent": false
},
"permissions": ["https://*/*", "http://*/*", "tabs"]
}
background.js:
var currentURL;
chrome.tabs.query({ currentWindow: true, active: true }, function (tabs) {
currentURL = tabs[0];
});
chrome.browserAction.onClicked.addListener(function(activeTab) {
var newURL = currentURL + "/images";
chrome.tabs.create({ url: newURL });
});
我尝试了各种形式,例如将chrome.browserAction.onClicked.addListener块嵌套在chrome.tabs.query块内,反之亦然,但似乎都没有。
使用当前版本,标签会打开,但网址为chrome-extension:// bffolfmjagnpglbmjkgajodjlfpekaeo / [object%20Object] /带有“找不到网页”的图片错误。
答案 0 :(得分:0)
实际上,我想我已经明白了。如果我添加' .url'它似乎有效。在background.js中的标签[0]之后:
var currentURL;
chrome.tabs.query({ currentWindow: true, active: true }, function (tabs) {
currentURL = tabs[0].url;
});
chrome.browserAction.onClicked.addListener(function(activeTab) {
var newURL = currentURL + "/images";
chrome.tabs.create({ url: newURL });
});
虽然看起来更干净:
chrome.browserAction.onClicked.addListener(function(activeTab) {
chrome.tabs.query({ currentWindow: true, active: true }, function (tabs) {
var newURL = tabs[0].url + "/images";
chrome.tabs.create({ url: newURL });
});
});