chrome.downloads.erase funktioniert nicht Beim Start über das Inhaltsskript
Ich versuche, eine Chrome-Erweiterung zu erstellen, die beim Aufrufen einer bestimmten Website angezeigt wird. Ich lösche den Download-Verlauf. Ich benutze dies von der Hintergrundseite:
chrome.downloads.erase({},
function(item)
{
console.log("Erased item");
console.log(item);
});
Das Problem ist, dass es nicht funktioniert, wenn ich eine Nachricht aus dem Kontaktskript sende, nachdem ich die gewünschte URL eingegeben habe.
Ich benutze send Message im Inhaltsskript
chrome.runtime.sendMessage
und erhalte die Nachricht auf der Hintergrundseite
chrome.runtime.onMessage.addListener
Dies ist die Ausgabe, die ich erhalte, obwohl sich einige Dateien im Download-Verlauf befinden:
Erased item
Array[0]
Wenn ich erase () über die Hintergrundseitenkonsole ausführe, funktioniert es einwandfrei
it scheint, dass es passiert, weil es keine Benutzerinteraktion gibt. Wenn ich einen leeren Knopf drücke und darauf klicke, funktioniert die Löschung. Wenn ich jedoch eine Zeitüberschreitung verwende, weiß ich nicht, warum das passiert?
Ich habe gesehen, dass es etwas mit dem setTimeout zu tun hat. Dies funktioniert auf der Hintergrundseite:
setTimeout(function(){
console.log('erasing downloads');
chrome.downloads.erase({});
}
, 0);
Aber das tut nicht:
setTimeout(function(){
console.log('erasing downloads');
chrome.downloads.erase({});
}
, 1000);