iOS 5中Mobile Safari的Reader功能如何工作?如何在我的网站上启用它。我如何告诉它我的页面上的哪些内容是触发此功能的文章?
答案 0 :(得分:67)
此处发布的许多答案都包含虚假信息。以下是一些更正/澄清:
<article>
元素可以作为包装器使用; Safari Reader识别它。 My site is an example。除了<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
答案 1 :(得分:7)
它所基于的算法似乎正在寻找p-Tags,它会将分隔符视为“。”。在innerText中。点数最多的部分(div)成为焦点。
请参阅: http://lab.arc90.com/experiments/readability/
似乎是Reader-mode的基础,至少Safari在致谢中将其归属,请参阅:
文件:/// C:/Program%20Files/Safari/Safari.resources/Help/Acknowledgments.html
Arc90(可读性)
版权所有©Arc90 Inc.
可读性根据Apache许可证2.0版获得许可。
答案 2 :(得分:7)
我已经在我的iPhone上测试了大约100个这样的变体,以便找出触发这个难以捉摸的Reader状态的原因。我的结论如下:
以下是我发现的影响:
<ol>
或<ul>
(通常不用于包含故事)中的文字不会计入200个单词(如果是读者,它们将显示在阅读器中因其他原因被触发)<div>
或<article>
这样的块元素中包含200个单词似乎是必要的(也就是说,如果有任何网站不是这样的话,我会感到惊讶)< / LI>
对于完全披露,我发现这是没有影响的:
<p>
中还是让它自由流动答案 3 :(得分:3)
这个问题(How to disable Safari Reader in a web page)有更多细节。复制到这里:
我很想知道更多关于什么触发了Safari中的Reader选项以及什么没有。我不打算实施任何可以禁用它的东西,但作为一项技术练习很好奇。
以下是我到目前为止所学到的一些基本知识:
您至少需要一个H标签 它不是单独使用字符数,而是通过P标签的数量和长度 可能会寻找句子'。'和其他标准 如果使用H标签,Safari将提供“阅读器”,并提供以下内容:
1个P标签,2417个字符 4个P标签,1527个字符 5个P标签,1150个字符 6个P标签,862个字符 如果从上述任何一个字节中减去1个字符,则“阅读器”选项不可用。
我应该注意到H标签的字符数是一个部分,但遗憾的是当我确定上面的结果时没有意识到这一点。假设H标签有20多个字符,并在上面的结果中修复。
其他一些有趣的事情:
P标签的设置会将其从计数中删除 将显示设置为none,然后使用Javascript在230ms后显示它们也避免使用Reader选项
如果有人能够全面确定,我会感兴趣。
答案 4 :(得分:2)
我正在努力解决这个问题。我终于在我的故事和中提琴中取出了<ul>
标记!它开始工作了。
我没有把任何包装物放在身体周围,但可能是偶然做到的。
答案 5 :(得分:1)
HTML5文章标记在我的测试中不会触发它。它似乎也不适用于离线内容(即保存在本地计算机上的页面)。
似乎触发它的是一个div块,其中有很多带有大量文本的p。
答案 6 :(得分:1)
p标签理论听起来不错。我认为它也会检测其他元素。我们的一个页面有6个段落没有触发Reader,但有一个有4个段落和一个img标签。
它还足够智能,可以检测多页文章。在nytimes.com或nymag.com上的多页文章中试一试。有兴趣知道它是如何检测到的。
答案 7 :(得分:1)
虽然它可能令人惊讶,但它确实没有关注HTML5文章标签,特别令人失望的是Safari 5完全支持CSS中的文章,部分,导航等 - 它们的样式可以像div现在,行为与任何块级元素相同。
我专门设置了一个带有文章标签和几个内部标签的网站,为语义HTML5标签做准备就是为了这个目的,所以我真的希望Safari 5能够将它用于Reader。没有这样的运气 - 可能应该提出一个错误,因为它会有很大的意义。它实际上完全忽略了页面上的大多数h2级子标题,每个子标记都标记为一个部分,只显示符合前面提到的标准的单个div。
具有讽刺意味的是,同一网站的旧版本(既没有文章,部分也没有分隔div标签),可识别整个机身以便在Reader中显示。
答案 8 :(得分:1)
Firefox和Chrome都有类似的名为iReader的插件。这是带有源代码的项目。
http://code.google.com/p/ireader-extension/
阅读代码以获取更多信息。
答案 9 :(得分:1)
请参阅Article Publishing Guidelines。
以下是有关如何阅读和解析的API:Readability Developer APIs。您已经有一个项目可以参考:ruby-readability。
简史: Safari阅读器功能,因为Apple的Safari 5浏览器嵌入了一个名为Readability的代码库,而Readability最初是一个基于Javascript的简单阅读工具,可将任何网页转换为可自定义的阅读视图。它于2009年初由Arc90(作为Arc90 Lab实验),一家位于纽约市的设计和技术商店发布。它还嵌入了亚马逊Kindle和流行的iPad应用程序,如Flipboard和Reeder。
答案 10 :(得分:0)
我正在开发用于清理网站的算法,这些算法类似于Safari阅读器功能的“浪费”信息。它不如可读性好,但有一些很酷的东西。
您可以在smartbrowser.codeplex.com项目页面了解详情。