Ich schreibe eine Safari-Erweiterung für den persönlichen Gebrauch, die URLs von einer bestimmten Website ändert, um extrem kleine Vorschaubilder richtig anzeigen zu lassen. Die URLs sind in folgendem Format:Ersetzen einer Anfrage-URL vor dem Laden der Seite mit einer Safari-Erweiterung
https://static.example.com/data/thumb/eb68634f5a5e3959e03be2af7c0b88ab.png
Ich möchte jedoch vor Belastung der thumb/
aus der URL Streifen aus, so dass es das Original, Bild in voller Größe zu laden, die dann unterschiedlich angezeigt werden, um einen injizierten Sheet mit (was bereits funktioniert).
Ich verstehe, dass die beforeload
Zuhörer in der Lage sein kann, mir zu helfen, aber ich habe nicht in der Lage, angemessene Dokumentation zu finden, wie ich gehen würde im Wesentlichen Neuschreiben von Anfragen während auf dieser Website.
Die vorhandene URL wird abgerufen und geändert. Ich verwende den folgenden Testcode:
document.addEventListener("beforeload", handleBeforeLoadEvent, true);
function handleBeforeLoadEvent(event)
{
if(event.url.match(/https:\/\/static.example.com\/data\/thumb\/(.+)/g)) {
console.log(event.url.replace("thumb/", ""));
}
}
Welche gibt, wie erwartet, URLs dieser Art:
https://static.example.com/data/eb68634f5a5e3959e03be2af7c0b88ab.png
Aber es immer noch nicht gesetzt die event.url
auf einen neuen Wert. Ich kann event.preventDefault()
zu Abbrechen der Anfrage, aber ich muss die URL ändern.
Ich hoffe, dass mir jemand dabei helfen kann! Bonuspunkte, wenn es theoretisch auch in Firefox und Google Chrome Webbrowsern funktionieren könnte, da ich diese Browser regelmäßig nutze.
Das funktioniert; aber ich hatte gerade ein ernsthaftes Problem - manchmal ist das Original kein PNG. Das Thumbnail ist immer ein PNG. Weißt du, ob es eine Möglichkeit gibt, JPG, PNG und GIF zu "pingen", um zu sehen, ob sie die Erweiterung sind? – Forest
Nein. Wenn Sie wirklich entschlossen sind, könnten Sie versuchen, jede dieser Bildmöglichkeiten unsichtbar zu laden und dann die geladene (mit dem 'load' Ereignis) zu enthüllen und die anderen zu verwerfen. – canisbos