サンドボックスのiframe要素内にオンラインWebページを読み込むオプションタブを使用して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'は、迅速な同期クリーンアップのため、非同期コールバックを使用するクロムAPIでは機能しません。また、コンテンツスクリプトはchrome.browsingDataにアクセスできません。背景ページ(またはイベントページ)と[chrome.tabs API](https://developer.chrome.com/extensions/tabs)の特別なイベントが必要です。[アーキテクチャの概要](https:// developerも参照してください) .chrome.com/extensions/overview#arch)。 – wOxxOm
Ref https://superuser.com/q/359879/78897 – Pacerier