Ich entwickle eine Chrome-Erweiterung, die ein Popup auf bestimmten Domänen anzeigen. Das Popup sollte jedes Mal angezeigt werden, wenn der Benutzer die Webseite besucht oder die aktuelle Seite mit einer der Zieldomänen aktualisiert. so zuerst habe ich ein Zuhörer geputtet, wenn der aktuelle Tab aktualisiert:erkennen, wenn Benutzer eine Seite aktualisieren
chrome.runtime.onInstalled.addListener(function() {
chrome.tabs.onUpdated.addListener(onTabUpdate);
});
die onTabUpdate
Funktion jedes Mal ausgeführt werden sollen wird eine Seite geladen (ich einige unnötige Code wie Domains Test gelöscht haben):
function onTabUpdate(tabId, info, tab) {
//if page is refreshed
if (info.url === undefined) {
if (info.status == 'loading') {
console.log('Refresh happened for tab: ' + tabId)
tabsLoaded = {};
loadPopup(tabId);
}
}
//if page is first time loaded
if (tab.status !== 'complete') {
return;
} else {
console.log("page loaded ");
loadPopup(tabId);
}}
der Code läuft sehr gut und erkennen, wenn die Seite geladen oder aktualisiert wird, ist das Problem, dass, wenn ich das Popup anzeigen und der Benutzer es schließen, das Refresh-Ereignis ausgelöst wird und das Popup erneut angezeigt wird. Ich denke, weil Chrome das DOM neu zeichnet und die Seite aktualisiert. So suche ich Weg, um zu erkennen, wenn der Benutzer ihn selbst aktualisieren Sie die Seite nicht, wenn Chrom tut.