8

加载样式表后,有没有办法清除所有 CSS 规则?

我必须使用构建在 Dojo 之上的专有 JavaScript 库( ESRI 的 ArcGIS Server API )。我广泛使用 Dojo 的小部件,并希望使用 Dojo 的 claro 主题,但不幸的是 ESRI 库通过加载非现场 CSS 文件(并且可能是在 JS 中硬编码的 CSS 规则)来修改 CSS。这最终破坏了 Claro 主题。

如此多的 Dojo 小部件 CSS 类被重写并创建了新规则,以至于仅清除所有 CSS 并重新加载标准 Dojo 样式表似乎更容易/更安全。

像下面这样的东西会很好:

* {none}

但我认为我最终将不得不使用 Dojo 或 jQuery 来完成此操作。

4

3 回答 3

6

查看 Paul Irish 的名为 RefreshCSS 的小书签:

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

它刷新页面上的 CSS 样式表,而不刷新页面本身。

我认为您可以对其进行一些更改并让它做您想做的事情?

使用 jQuery 的另一种可能有效的方法是在页面加载后运行它:

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

于 2010-09-04T21:19:49.517 回答
4

没有。可悲的是,这样的事情并不存在。

这些相关问题的答案几乎概括了解决方法方面的可能性。

于 2010-09-04T21:13:55.727 回答
0

document.head.innerHTML = "";但它真的很干净,所以你必须存储任何脚本、元标记、标题或任何你想要保存并再次添加它们的东西。

于 2016-08-27T12:53:33.920 回答