我有一个网站,其中构建HTML和CSS的平台完全锁定。我无法访问应用程序/服务器层。
平台提供了一些CSS文件,我用一点jquery剥离了它们
$(document).ready(function() {
$('link[rel=stylesheet][href*="UserGlobal"]').remove();
});
虽然这确实有效并且阻止“UserGlobal”样式表对我的页面显示产生任何影响但它仍然会被加载。
我的问题是,在没有访问应用程序层/服务器端的情况下,有没有办法阻止CSS文件首先被传递到浏览器?
我的直觉告诉我没有 - 但我有兴趣听到是否有人遇到类似的事情并解决了它。
答案 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>
的技术肯定会有效。