是否有任何方法来打电话的样式表, 如果它不是可用的,电话的样式表从另一个位置?

事情是这样的:

<link rel="Stylesheet" type="text/css" href="http://cdn.somewhere.com/css/style.css" />
<link rel="Stylesheet" type="text/css" href="local/style.css" />

呼叫第二个如果首先不是吗?我不想让2呼吁,如果它是不必要的。谢谢你。

编辑:这是因为我注意到在工作中,我CDN的是阻止,因此没有样式显示出来,但该网站。我假设很多地方可能有同一块(防火墙阻挡网应用程序)。然后我想抓住css从地方复制。

有帮助吗?

解决方案

这是不可能在纯HTML标记。但是,你可以这样做的服务器端有一个简单的脚本,例如(伪代码):

if first style does not exist:
    output <link> to second sheet
else
    output <link> to primary sheet

在现实中,虽然,你的样式表很可能是由浏览器缓存,所以它很难把一个负担最终用户。你可以简单地订购S以便“第二”样式表先加载,并且一次片负载第二。这将导致一次片材覆盖在次级片什么...但如果主片不是可用的,二次片仍然工作打算。

其他提示

JavaScript/AJAX强烈 不推荐 由于其非常难以预测的行为(我不是在谈论跨浏览器的兼容性,但有些用户把它关闭。)

如果我是你我会检查的存在的第一个给予CSS 服务器侧 并插入href。

还要记住,如果你真的要用这样的机制来确保的,那么你是说你的服务器是不可靠的。

没有,因为连接元件本身是静态的(“哑”)。所以,你要么需要JavaScript的定义,Greasemonkey(在Firefox但这是JavaScript的,太),或者你真的要问两个。

的顺序必须是不同的,虽然,IIRC:相同的CSS规则将覆盖先前的。所以,你需要包括本地文件,然后再加载外部之一。如果外部一个不可用,您的本地副本将被使用。

如果你把CSS文件在本地硬盘,这将是相当便宜。

这是说,浏览器不会总是下载文件。它会首先检查它的高速缓存中的副本是否仍然是当前,如果是,它不会再次下载该文件。

您可以默认使用“local.css”和使用JavaScript(使用AJAX)来加载新的。 如果请求可以加载新的CSS文件,它会确定,否则,你只需要改变任何东西。

... EHMM 您coudl使用这样的:

我不知道,如果当第一失败的替代样式表加载,但你可以尝试,如果没有把握,请阅读本:的列表除了教程改变样式表

这可以由JavaScript来实现。 代码应该是这样的:

if( loadcss(first.css) == false) loadcss(second.css);

其中loadcss是函数检查CSS被加载或不

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top