我对浏览器中<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>
以便导航该网络。
提前致谢。
答案 0 :(得分:3)
<link>
元素确实标识了与当前文档相关的外部文档。 rel
属性指定了该关系的性质。在rel="alternate stylesheet"
(某些)浏览器的特定情况下,可以使用链接执行特定操作。特别是,Firefox和Opera使用户有机会从应用程序的菜单中选择这个“备用”样式表。例如,参见屏幕截图
http://reference.sitepoint.com/html/figures/firefox-page-style.png
来自this article。
为了应用该样式表,浏览器需要下载它。
在rel="alternate"
(不是样式表)的更一般情况下,浏览器不会知道与相关链接有关的任何内容。因此,就浏览器而言,无需下载它。