我在Chrome扩展程序和Chrome扩展程序的后台页面中运行了此代码:
window.onbeforeunload = function() {
window.location.href = chrome.runtime.getURL('dist/index.html'); // change url
confirm('are you sure you want to refresh?');
};
这些钩子似乎都没有被击中。有谁知道在刷新时是否有办法更改URL?我想重新加载一个不同于多功能框中当前URL的URL。
答案 0 :(得分:1)
您可以使用tabs API
完成此操作。
您可以使用tabs.onUpdated
收听更改网址,然后在回调中收听,然后使用tabs.update
更改网址。
答案 1 :(得分:1)
Chrome扩展功能非常强大。
我建议使用chrome.tabs.onUpdated
事件来捕获页面更改后的内容,然后使用chrome.tabs.executeScript
注入window.location.replace
来电。
这样的事情,但你需要处理边缘情况。
chrome.tabs.onUpdated.addListener(function (tabId, changeInfo, tab) {
if (p.tab && p.tab.id === tabId && tab.status !== p.lastStatus) {//correct tab and not a duplicate status
if (tab.status === 'complete') {
chrome.tabs.executeScript(p.tab.id, { code: "window.location.replace('');", runAt: 'document_start' }, function () {
console.log('script injected');
});
}
}
});