完全阻止加载CSS

时间:2017-09-13 18:51:37

标签: jquery css

我有一个网站,其中构建HTML和CSS的平台完全锁定。我无法访问应用程序/服务器层。

平台提供了一些CSS文件,我用一点jquery剥离了它们

$(document).ready(function() {  
     $('link[rel=stylesheet][href*="UserGlobal"]').remove();
}); 

虽然这确实有效并且阻止“UserGlobal”样式表对我的页面显示产生任何影响但它仍然会被加载。

我的问题是,在没有访问应用程序层/服务器端的情况下,有没有办法阻止CSS文件首先被传递到浏览器?

我的直觉告诉我没有 - 但我有兴趣听到是否有人遇到类似的事情并解决了它。

2 个答案:

答案 0 :(得分:0)

仅使用JavaScript,如果HTML页面上已包含CSS(带有<link><style>标记),则无法阻止浏览器加载CSS文件。< / p>

如果您想阻止浏览器加载它,您需要一些方法来更改Web服务器的HTTP响应(即删除CSS)。

答案 1 :(得分:0)

嗯,这取决于你有多少愿意摆脱正常的做事方式。如果您主要关注的是避免下载不必要的资产,则可以在确定是否需要某个样式表后,将<link>动态注入页面。这是一个介绍如何使用普通javascript创建<link>以及如何将它们插入DOM的页面:

https://www.giftofspeed.com/defer-loading-css/

另外,请记住,如果您发现文件已经太晚,那么您就不需要。()举个例子,这个简单的js片段可以插入到页面的任何地方,并且会在DOM准备好之前立即运行:

<script>    
  var links = document.getElementsByTagName("link");
  links[0].parentNode.removeChild(links[0]);
</script>

我已对其进行了测试,并且它不会阻止外部CSS文件的下载,但我不清楚下载的文件是否实际被解析并且#34;已加载&#34 34;进入浏览器。尽管如此,如果您需要使用它,动态注入<link>的技术肯定会有效。