使用javascript替换样式表href之前,它是从服务器上下载

问题描述:

是否有可能阻止与JavaScript位外部脚本/样式表的下载?例如,在<head>的顶部放置一小块javascript以对文档中的所有<script><link>标签执行一些操作,可能会将相对路径更改为绝对路径,之前为其原始相对路径源被下载从服务器?使用javascript替换样式表href之前,它是从服务器上下载

我不想寻找替代方案,如服务器端处理或手动更改<script><link>标签。我对概念验证感兴趣,在这种情况下,我无法控制最终文档,或者代,除了插入单个脚本标记。

不,你不能。

问题出在文档的头部,脚本将无法访问尚未加载的节点,因此它无法修改任何将要出现的脚本标记。

此外,浏览器在脚本标记到达后立即加载JavaScript,并暂停解析html,直到脚本标记完成。

这意味着,没有办法用JavaScript来做到这一点。

可能是这样的:?

$(function(){ 
    $("link").each(function(){ 
     $(this).attr('href','NEW_URL.css'); 
    }); 
}); 

这将改变所有元素的href属性,但我不能保证它会改变风格,因为当DOM就绪该脚本将被执行。

P.S.这不是纯粹的JavaScript - 它是jQuery(对不起,如果你需要纯JavaScript)

P.P.S. - 我刚刚尝试过这个 - 应用CSS。这并不意味着你可以阻止下载用标签写入的css文件。它们被下载,但是当DOM准备好时(文档被加载) - 样式被改变。这很快 - 你不能看到旧的风格=)

嗯,CSS的工作原理相当有趣,就它的动态性而言。话虽如此,你可以使用javascript在下载后更新css的URL,当链接改变时(99%肯定),效果将被取消。

如果上面的失败,CSS再次惊人,这意味着你可以插入一个新的链接节点,一个新的CSS,基本上覆盖任何和所有以前的CSS样式到你自己选择的。

你想达到什么目的?