浏览器中<link rel =“alternate”/>的行为

时间:2014-03-03 16:49:18

标签: html http rest hateoas

我对浏览器中<link rel="alternate" ...>的行为感到有些困惑,我正在寻找一些澄清。我们使用以下代码进行说明:

<!DOCTYPE html>
<html lang="en">
    <head>
        <link rel="stylesheet" href="a.css" type="text/css" 
              title="Main Stylesheet">
        <link rel="alternate stylesheet" href="b.css" type="text/css" 
              title="Alternative Stylesheet">
        <link rel="alternate" href="fr.pdf" hreflang="fr" type="application/pdf" 
              title="Alternative document in French">
    </head>
    <body>
    </body>
</html>

当此代码在现代浏览器(例如Firefox v27.01)中运行时,浏览器将解析上述HTML文档,然后下载样式表a.css和b.css。前者用于将样式应用于文档。但是,b.css可以通过'View&gt;获得。所述浏览器的页面样式菜单。所以,很明显Firefox中的解析器能够识别“替代”样式表,在这种情况下决定下载它。

可以在W3C > HTML5 > 4.8.4.1阅读解析那些<link>的结果是基本引用相应文档的超链接。在样式表的情况下,浏览器也足够智能下载它。但是,对于我们示例中的其他备用文档(fr.pdf),看起来Firefox不下载它,如果它链接它,它在任何地方都不可见。我在Chrome(v.33.0.1750.117),Opera(v.19.0.1326.63),IE(v.10.0.9200.16798)中进行了测试,并且可以观察到同样的事情(即没有与fr.pdf链接的可见伪像)。所以,由于所有这些现代浏览器都表现得像这样,看起来我误解了“替代”关系的含义:)有人会对我有关如何使用它们的解释吗?我的信念是,以RESTful方式,用户代理应该能够(超)链接所有<link>以便导航该网络。

提前致谢。

1 个答案:

答案 0 :(得分:3)

<link>元素确实标识了与当前文档相关的外部文档。 rel属性指定了该关系的性质。在rel="alternate stylesheet"(某些)浏览器的特定情况下,可以使用链接执行特定操作。特别是,Firefox和Opera使用户有机会从应用程序的菜单中选择这个“备用”样式表。例如,参见屏幕截图

http://reference.sitepoint.com/html/figures/firefox-page-style.png

来自this article

为了应用该样式表,浏览器需要下载它。

rel="alternate"(不是样式表)的更一般情况下,浏览器不会知道与相关链接有关的任何内容。因此,就浏览器而言,无需下载它。