Content-scripts mit 'run_at' auf 'document_end", aber es ändert DOM, nachdem die Seite einmal geladen ist

In meiner extension, die ich bin versucht zu ändern die URLs der <img> - tags im DOM zu https://... ich habe den run_at Attribut document_end, aber im Gegensatz zu Chrome, Dokumentation, es ändert DOM nach der Seite sub-Ressourcen (Bilder) werden einmal angezeigt (die Bilder sind Faust angezeigt, für einen kurzen (aber nervig), dann verschwindet als https wird nicht unterstützt für diese Bilder). Ich erwarte, wenn https wird nicht unterstützt für Bilder, sollten Sie nicht angezeigt werden, obwohl für eine kurze Weile. Der code ist der folgende.

manifestieren.json:

...

"content_scripts": [    
        {
            "matches": [
                "http://*/*",
                "https://*/*"
            ],
            "js": ["content.js"],
            "all_frames": true,
            "run_at": "document_end"
        }
    ],
...

content.js:

images = document.getElementsByTagName("img");
for (var i = 0; i < images.length; i++)
        if (images[i].src.indexOf("http://") === 0)
                images[i].src = images[i].src.replace("http://", "https://");
  • Sie werden bessere Ergebnisse mit der chrome.webRequest api umleiten alle Bild-Anfragen.
  • Ich war ursprünglich mit webRequest - API, um das upgrade-image-Anforderung für https in onBeforeRequest, aber ich habe Probleme bei der Umlenkung dann zurück auf http wenn https-redirect-Fehler. Ich brauche eine Möglichkeit zum umleiten von Bild-Anfragen in meinem timeout_fun. redictUrl funktioniert nicht.
  • Es könnte Arbeit für die erste Umleitung. Sie müssen, leiten Sie Sie wieder in Ihrem code, wenn Sie scheitern
InformationsquelleAutor Khan | 2013-09-19
Schreibe einen Kommentar