Ändern des externen CSS von der Chrome-Erweiterung

8

Ich schreibe eine Chrome-Erweiterung, die über alle Stylesheets in der Seite, in die sie injiziert wird, iterieren und bestimmte Stile ändern muss.

Ich wiederhole / modifiziere Stile zum Beispiel wie folgt:

%Vor% %Vor% %Vor%

Das Problem, das ich habe ist, dass es scheint, dass externe CSS nicht enthalten sind.

Zum Beispiel, wenn ich meine Erweiterung in stackoverflow.com injiziere, die hat:

%Vor%

Dann werden die Stile von all.css nicht iteriert.

Wie kann ich externe Stile iterieren / ändern?

Hinweis 1 - Ich habe versucht, diese Links relativ aufzurufen und sie in interne Style-Tags einzufügen, aber das bricht alle relativen URLs in diesen Dateien (d. h. background-image: url('path/image.jpg') )

Hinweis 2 - mein Manifest hat "permissions": [ "http://*/*", "https://*/*" ]

Hinweis 3: Da es sich um eine Chrome-Erweiterung handelt, bin ich mit einer reinen Chrome-Lösung zufrieden

    
kofifus 19.11.2017, 03:01
quelle

1 Antwort

0

Dies könnte ein Fehler in Ihrem Beispielcode sein, aber es ist offensichtlich, dass es unwahrscheinlich ist, dass Sie Ihr Stylesheet vor dem DOMContentLoaded-Ereignis + 1 Sekunde injizieren und abrufen. Versuchen Sie, Ihre setTimeout-Wartezeit auf 20 Sekunden zu ändern und sehen Sie, was passiert.

Wenn dies Ihr Problem löst, besteht der nächste Schritt darin, eine bessere Lösung zu erstellen, die wartet, bis Ihr Stylesheet vor dem Iterieren angezeigt wird.

    
N-ate 27.11.2017 21:40
quelle