2010-09-04 9 views
8

C'è un modo per cancellare tutte le regole CSS una volta che i fogli di stile sono già stati caricati?Rimuovi tutte le regole CSS

Devo usare una libreria JavaScript proprietaria (ESRI's ArcGIS Server API) che è costruita sopra Dojo. Faccio un ampio uso dei widget di Dojo e vorrei usare il tema Claro di Dojo, ma sfortunatamente la libreria ESRI utilizza il CSS caricando file CSS fuori sito (e probabilmente le regole CSS codificate nel JS). Questo finisce per manomettere il tema di Claro.

Così molte classi widget di Dojo CSS vengono riscritti e nuove regole vengono creati che appena spazzare via tutti i CSS e ricaricare i fogli di stile standard di Dojo sembra più facile/più sicuro.

qualcosa come il seguente sarebbe bello:

* {none} 

ma capire che dovrò finire utilizzando Dojo o jQuery per raggiungere questo obiettivo.

risposta

4

arrivo partenza questo bookmarklet chiamato RefreshCSS da Paul Irish:

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())}}})() 

Aggiorna i fogli di stile CSS su una pagina, senza aggiornare la pagina stessa.

Penso che potresti fare delle modifiche e farlo fare quello che vuoi?

Un altro approccio utilizzando jQuery che potrebbe funzionare è quello di eseguire una volta caricata la pagina:

$('head link, head style').remove();

+0

Non so perché, ma nel codice sono presenti caratteri di escape come < e &. Ecco il codice (auspicabilmente correttamente formattato): 'javascript: (function() {var h, a, f; a = document.getElementsByTagName ('link'); for (h = 0; h Philipp

0

C'è sempre document.head.innerHTML = ""; Ma davvero pulisce casa in modo da avere per riporre gli script, metatags, titoli o qualunque cosa tu voglia salvare e aggiungerli di nuovo.