使用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样式到你自己选择的。
你想达到什么目的?