Entfernen Sie alle CSS-Regeln
-
30-09-2019 - |
Frage
Gibt es eine Möglichkeit, alle CSS-Regeln auszulöschen einmal Stylesheets bereits geladen worden sind?
Ich habe eine eigene JavaScript-Bibliothek verwenden ( ESRI ArcGIS Server API ), die auf der Oberseite des Dojo gebaut. Ich mache umfangreichen Gebrauch von Dojos Widgets und möchte Dojos claro Thema verwenden, aber leider den ESRI Bibliothek mungs bis den CSS durch Laden in Off-Site-CSS-Dateien (und wahrscheinlich auch CSS-Regeln hartcodiert im JS). Dies endet mit dem Claro Thema Mangeln.
So viele Dojo Widget CSS-Klassen neu zu schreiben und neue Regeln erstellt erhalten , dass sie einfach alle CSS Auswischen und Neuladen der Standard-Dojo Sheets scheint leichter / sicherer zu machen.
So etwas wie die folgenden wäre schön:
* {none}
, aber ich denke, ich werde am Ende mit müssen bis entweder Dojo oder jQuery dies zu erreichen.
Lösung
lesen Sie in diesem Bookmarklet RefreshCSS von Paul Irish genannt:
javascript:(function(){var h,a,f;a=document.getElementsByTagName('link');for(h=0;h<a.length;h++){f=a[h];if(f.rel.toLowerCase().match(/stylesheet/)&&f.href){var g=f.href.replace(/(&|%5C?)forceReload=\d+/,'');f.href=g+(g.match(/\?/)?'&':'?')+'forceReload='+(new Date().valueOf())}}})()
Es frischt die CSS-Stylesheets auf einer Seite, ohne das Aktualisieren der Seite selbst.
Ich glaube, Sie könnten einige Änderungen, um es zu tun und bekommen es zu tun, was Sie wollen?
Ein weiterer Ansatz mit jQuery, dass Macht Arbeit ist dies läuft weiter, sobald die Seite geladen wird:
$('head link, head style').remove();
Andere Tipps
Nein. Leider so etwas gibt es nicht.
Die Antworten auf diese Fragen geben verwandte ziemlich die Verminderung auf, was in Bezug auf Abhilfen möglich ist.
Es gibt immer document.head.innerHTML = "";
Aber es wirklich reinigt Haus, so dass Sie alle Skripte, Metatags, Titel haben zu verstauen oder was auch immer Sie wollen wieder um sie zu retten und hinzuzufügen.