防止CSS根本加载

问题描述:

我有一个网站,HTML和CSS构建的平台完全锁定。我获得了对应用程序/服务器层的零访问权限。防止CSS根本加载

有迹象表明,获得由平台所服务的几个CSS文件,我已经他们剥出一点点的jQuery

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

虽然这工作,防止“UserGlobal”样式从具有任何影响我的页面展示仍然会加载。

我的问题是,在没有访问应用程序层/服务器端的东西时,是否有办法阻止CSS文件首先被传送到浏览器?

我的直觉告诉我不 - 但我会有兴趣听到有没有人遇到类似的东西并解决它。

+0

通过PHP也许...你需要解析页面,删除该样式表然后重新提供页面。 JS是前端,所以它不会像那样工作 – clearshot66

+0

从html页面中删除样式表,并且当你希望包含它时,使用下面这个问题中的答案https://stackoverflow.com/questions/574944/how-to -load-up -css-files-using-javascript –

+0

@DavidLee我很欣赏这种回应。如果它像从HTML页面中移除它一样简单,我会拥有。我实际上没有办法到达现在提供文件的地方,不告诉它,这是问题的根源。 – HisPowerLevelIsOver9000

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

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

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

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

另外,请记住,如果它发生你不需要的document.ready()为时已晚。只是作为一个例子,这种平淡的js代码片段可以在任何地方插入到一个网页,并会立即运行 - 之前DOM已准备就绪:

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

我测试过它,它不会阻止外部CSS文件下载,但是我不清楚下载的文件是否真正被解析并“加载”到浏览器中。尽管如此,如果您需要使用它,那么您动态注入<link>的技术应该可以正常工作。

+0

注意:您必须在jQuery中使用document.ready(),因为jquery通常是需要加载的单独文件。 Plain JS是本机的,它可以在任何需要的时候运行 - 不需要等待。 – Ringo

+0

这不一定是真的。如果您在'

'中加载加载jQuery并在之后立即运行该脚本,它将在'load'事件触发之前运行。 –
+0

我想那是真的,是的 – Ringo