2017-09-03 452 views
2

我正在開發一個帶擴展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」文件獲取的。

+0

'onunload'用於快速同步清理,因此它不適用於具有異步回調的chrome API。另外,內容腳本無法訪問chrome.browsingData。您需要[chrome.tabs API](https://developer.chrome.com/extensions/tabs)中的背景頁面(或事件頁面)和特殊事件,另請參閱[體系結構概述](https:// developer .chrome.com /擴展/概述#拱)。 – wOxxOm

+0

Ref https://superuser.com/q/359879/78897 – Pacerier

回答

0

SO post中提出了相同的情況。

有沒有辦法從刪除具體關閉的標籤:

  1. 最近關閉的標籤和
  2. 擦拭它的任何痕跡從多功能框預測文本呢?

建議的操作是使用browsingData.remove

chrome.browsingData.remove(RemovalOptions options, DataTypeSet dataToRemove, function callback) 
+0

但是RemovalOptions只允許設置時間。 – Pacerier