我正在尝试将当前标签导航到browser_action Chrome扩展程序中的网址,以响应用户输入的关键字。最好的方法是什么?
首先我用javascript尝试了一个简单的表单,但我意识到javascript没有在当前选项卡上设置window.location.href,因为我没有使用executeScript。
到目前为止,我发现最好的方法是使用executeScript:
chrome.tabs.executeScript(null, {code:"window.location.href = '" + url + "';"});
这还涉及向清单添加权限:
"permissions": [
"tabs",
"http://*/",
"https://*/"
],
问题在于:
此方法不适用于newtab页面。 (添加“chrome:// * /”会破坏扩展名并阻止其安装)
它要求为每种协议类型明确设置权限,否则扩展将无法在某些类型的页面上使用。
是否有更强大的方法可以使Chrome浏览器选项卡从browser_action弹出框中将打开的标签导航到特定页面?
答案 0 :(得分:5)
不需要内容脚本或主机权限。只需使用chrome.tabs.update
(不需要tabs
权限):
chrome.browserAction.onClicked.addListener(function(tab) {
chrome.tabs.update(tab.id, {
url: url
});
});