我正在開發一個帶擴展iframe元素的在線網頁的選項選項卡的Chrome擴展。只要用戶點擊iframe中的某個鏈接,瀏覽器就會創建一個新的歷史記錄,並且瀏覽器的後退/前進按鈕被激活。如何清除標籤頁上的歷史記錄關閉?
我想清除用戶關閉標籤後創建的所有歷史記錄,並且如果可能的話,停止瀏覽器將標籤添加到「歷史 - >最近關閉」菜單。
我嘗試用瀏覽器控制檯內不同的API,並且沒有以下的似乎是工作的打算:
window.onunload = function() {
// Using the `chrome.history` API
chrome.history.deleteUrl({url: 'https://example.tld/'}, console.log);
// Using the `chrome.browsingData` API
chrome.browsingData.removeHistory({
"since": (new Date()).getTime() - 1000000
}, console.log);
};
雖然這種成功沒有任何錯誤的執行,我仍然可以恢復選項卡通過「歷史 - >最近關閉」,並使用後退/前進按鈕導航回iframe元素中加載的URL(即「https://example.tld/」)。我怎樣才能阻止這種行爲?
注意:「history」和「browsingData」權限都是通過「manifest.json」文件獲取的。
'onunload'用於快速同步清理,因此它不適用於具有異步回調的chrome API。另外,內容腳本無法訪問chrome.browsingData。您需要[chrome.tabs API](https://developer.chrome.com/extensions/tabs)中的背景頁面(或事件頁面)和特殊事件,另請參閱[體系結構概述](https:// developer .chrome.com /擴展/概述#拱)。 – wOxxOm
Ref https://superuser.com/q/359879/78897 – Pacerier