第一次延期 - 请善待。
我的目标是在用户访问特定域的网页时提供一个选项,以提供启动另一个页面的选项,该页面使用部分访问过的网页的域名作为变量。
下面这段代码可以满足我的需求,但它不会将操作作为选项提供 - 它只是执行。
当访问与域匹配的页面时,它会向地址栏添加一个图标。我希望只有当用户点击该图标时才会加载调用的新页面。如果那是不可能的,请提出替代方案。
谢谢!
function checkForValidUrl(tabId, changeInfo, tab) {
if (tab.url.indexOf('.foo.com') > -1) {
chrome.pageAction.show(tabId);
var myName = tab.url.split(".")[0].slice(7);
if (myName != "www"){ //ignore main site
chrome.tabs.update(tab.id, {url: "http://foo.com/foo.html?t=" + myName});
}
}
};
chrome.tabs.onUpdated.addListener(checkForValidUrl);
答案 0 :(得分:11)
您只需使用chrome.pageAction.onClicked
即可。例如:
function checkForValidUrl(tabId, changeInfo, tab) {
if (tab.url.indexOf('.foo.com') > -1)
chrome.pageAction.show(tabId);
};
chrome.tabs.onUpdated.addListener(checkForValidUrl);
chrome.pageAction.onClicked.addListener(function(tab){
var myName = tab.url.split(".")[0].slice(7);
if (myName != "www") //ignore main site
chrome.tabs.update(tab.id, {url: "http://foo.com/foo.html?t=" + myName});
});
答案 1 :(得分:2)
以上答案是正确的,但请注意,您需要在清单中拥有正确的权限才能使其生效,否则UIButton
将无法定义。
来自文档tab.url