iOS 5中的Mobile Safari的Reader功能如何工作?如何在我的网站上启用它。如何告诉我页面上的哪些内容是触发此功能的文章?
Answers:
此处发布的许多答案都包含虚假信息。以下是一些更正/说明:
该<article>
元素可以很好地用作包装器;Safari Reader可以识别它。我的网站就是一个例子。这不要紧,你选择哪一个包装元素,只要有一个,比其他<body>
或<p>
。您可以使用<article>
,<div>
,<section>
,或者是用于此目的的语义上不正确的元件,如<nav>
,<aside>
,<footer>
,<header>
; 甚至是内联元素,例如<span>
(!)。
读者无需标题即可工作。这是一个示例文件<h*>
,其中没有任何可以使Reader正常工作的元素:http : //mathiasbynens.be/demo/safari-reader-test-3
我在这里发布了一些有关我的发现的更多详细信息:http : //mathiasbynens.be/notes/safari-reader
我已经在iPhone上测试了100种左右的变体,以找出是什么触发了这种难以捉摸的Reader状态。我的结论如下:
我发现这产生了影响:
<ol>
或<ul>
(通常不包含故事)中的文本)将不会计入200个单词(但是,如果由于其他原因触发了阅读器,它们将显示在阅读器中)<div>
或<article>
似乎是必须的(也就是说,如果有其他网站还不是这样,我会感到惊讶)为了进行全面披露,以下是我发现没有影响的内容:
<p>
换成a或使其自由流动似乎基于该算法的算法正在寻找p-Tag,并且它会计算诸如“”之类的定界符。在innerText中。得分最高的部分(div)成为焦点。
请参阅:http: //lab.arc90.com/experiments/readability/
似乎是Reader-mode的基础,至少Safari在Acknowledgements中将其属性化,请参阅:
file:/// C:/Program%20Files/Safari/Safari.resources/Help/Acknowledgments.html
Arc90(Readability)版权所有©Arc90Inc。
可读性是根据Apache许可版本2.0许可的。
这个问题(如何在网页中禁用Safari阅读器)具有更多详细信息。复制在这里:
我很好奇,想知道更多有关什么触发Safari中的Reader选项以及什么不触发的信息。我不打算实施任何会禁用它的东西,但作为技术练习却感到好奇。
到目前为止,我已经学到了一些基本知识:
您至少需要一个H标签。它不仅取决于字符数,还取决于P标签的数量和长度。和其他条件Safari将在带有H标签以及以下内容的情况下提供“阅读器”:
1 P标签,2417个字符4 P标签,1527个字符5 P标签,1150个字符6 P标签,862个字符如果您从上述任何一个中减去1个字符,则“阅读器”选项不可用。
我应该注意,H标签的字符计数起了一定作用,但是当我确定上述结果时,可惜没有意识到这一点。假设H标签包含20个以上的字符,并且在以上结果中均已固定。
其他一些有趣的事情:
设置P标签会将它们从计数设置显示中删除为无,然后在230ms之后使用Javascript显示它们,也避免使用Reader选项。
如果有人能完全确定,我将很感兴趣。
HTML5文章标记不会在我的测试中触发它。它也似乎不适用于离线内容(即保存在本地计算机上的页面)。
似乎触发它的是一个div块,其中包含很多p和很多文本。
<article>
我的网站上,读者在那里工作,如mathiasbynens.be/notes/html5-levels但不是在较小的物品,如mathiasbynens.be/notes/document-head使用的<article>
似乎并不有什么关系呢。
<div>
...甚至怪异的东西一样,还是做工精细。在此处了解更多信息:mathiasbynens.be/notes/safari-reader<article>
<section>
<nav>
<aside>
<span>
尽管可能令人惊讶,但它的确没有对HTML5文章标记给予任何关注,尤其令人失望的是,Safari 5完全支持CSS中的文章,栏目,导航等-它们现在可以像div一样设置样式,并且其行为与任何块级元素相同。
我已经专门设置了一个带有商品标签和几个内部部分标签的网站,以准备针对此类目的的语义HTML5标签,因此,我真的希望Safari 5将其用于Reader。没有这样的运气-可能应该为此提交一个错误,因为这很有意义。实际上,它完全忽略了页面上的大多数h2级别的子标题,每个子标题都标记为一个部分,仅显示符合前面提到的条件的单个div。
具有讽刺意味的是,该网站的旧版本既没有文章,部分,也没有div标签,但它可以识别整个正文,以便在Reader中显示。
<article>
是Safari Reader识别的有效包装器,它可以正常工作。看到我的评论对这个答案的一些例子:stackoverflow.com/questions/2997918/...
Firefox和Chrome都有类似的名为iReader的插件。这是带有源代码的项目。
http://code.google.com/p/ireader-extension/
阅读代码以获取更多信息。
请参阅文章发布准则。
以下是有关如何读取和解析的API:Readability Developer API。您已经可以参考一个项目:ruby-readability。
简要的历史记录:自Apple的Safari 5浏览器嵌入了一个名为Readability的代码库以来,Safari Reader功能就开始了,Readability最初是一个基于Javascript的简单读取工具,可将任何网页转换为可自定义的阅读视图。它由位于纽约的设计和技术商店Arc90(作为Arc90实验室实验)发布于2009年初。它还嵌入到Amazon Kindle和Flipboard和Reeder等流行的iPad应用程序中。
我正在研究从Safari浏览器功能类似的信息“浪费”中清除网站的算法。它不如可读性好,但有一些很棒的东西。
您可以在smartbrowser.codeplex.com项目页面上了解更多信息。