如何在我的网站上启用iOS 5 Safari Reader?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在我的网站上启用iOS 5 Safari Reader?相关的知识,希望对你有一定的参考价值。
ios 5中Mobile Safari的Reader功能如何工作?如何在我的网站上启用它。我如何告诉它我页面上的哪些内容是触发此功能的文章?
这里发布的很多答案都包含虚假信息。以下是一些更正/澄清:
<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
见Article Publishing Guidelines。
以下是有关如何阅读和解析的API:Readability Developer APIs。已经有一个你可以参考的项目:ruby-readability。
简要历史:Safari阅读器功能,因为Apple的Safari 5浏览器嵌入了一个名为Readability的代码库,而Readability最初是一个基于javascript的简单阅读工具,可以将任何网页转换为可自定义的阅读视图。它于2009年初由位于纽约市的设计和技术商店Arc90(作为Arc90实验室实验)发布。它还嵌入了亚马逊Kindle和流行的iPad应用程序,如Flipboard和Reeder。
我正在研究从类似于Safari阅读器功能的信息“浪费”清理网站的算法。它不如可读性好,但有一些很酷的东西。
您可以在smartbrowser.codeplex.com项目页面了解更多信息。
我已经在我的iPhone上测试了大约100个这样的变体,以便找出触发这个难以捉摸的Reader状态的原因。我的结论如下:
以下是我发现的影响:
- 在文章中有大约200个或更多单词(或1000个字符,包括空格),你想要触发“阅读器”似乎是必要的
- 当我不到170个单词时,读者从未被触发过;虽然我有180或190个单词时有时会触发它。
- 某些元素(例如
<ol>
或<ul>
)(通常不用于包含故事)中的文本将不计入200个单词(如果读者因其他原因被触发,它们将显示在阅读器中) - 在
<div>
或<article>
这样的块元素中包含200个单词似乎是必要的(也就是说,如果有任何网站不是这样的话,我会感到惊讶)
对于完整的披露,这里是我发现没有影响:
- 是否使用标题
- 是将文本包装在
<p>
中还是让它自由流动 - 标点符号(即删除所有句点,逗号等,没有影响)
看起来它所基于的算法正在寻找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版获得许可。
这个问题(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标签的设置将它们从计数设置显示中删除为无,然后在230ms后显示它们,Javascript也避免使用Reader选项
如果有人能够完全确定这一点,我会感兴趣。
我正在努力解决这个问题。我终于在我的故事和中提琴中取出了<ul>
标记!它开始工作了。
我没有把任何包装物放在身体周围,但可能是偶然做到的。
HTML5文章标签不会在我的测试中触发它。它似乎也不适用于离线内容(即本地计算机上保存的页面)。
似乎触发它的是一个div块,其中包含大量带有大量文本的p。
p标签理论听起来不错。我认为它也会检测其他元素。我们的一个页面有6个段落没有触发Reader,但有一个有4个段落和一个img标签。
它也足够智能,可以检测多页文章。在nytimes.com或nymag.com上的多页文章中试一试。有兴趣知道它是如何检测到的。
虽然它可能令人惊讶,但它确实没有关注HTML5文章标签,特别令人失望的是Safari 5完全支持CSS中的文章,部分,导航等 - 它们的风格可以像div一样,并且行为与任何块级元素相同。
我专门设置了一个带有文章标签和几个内部标签的网站,为语义HTML5标签做准备就是为了这个目的,所以我真的希望Safari 5能够将它用于Reader。没有这样的运气 - 可能应该提出一个错误,因为它会有很大的意义。它实际上完全忽略了页面上的大多数h2级子标题,每个标题都标记为一个部分,只显示符合前面提到的标准的单个div。
具有讽刺意味的是,同一网站的旧版本既没有文章,也没有文章,也没有分隔div标签,它可以识别整个机身以便在Reader中显示。
Firefox和Chrome都有类似的名为iReader的插件。这是带有源代码的项目。
http://code.google.com/p/ireader-extension/
阅读代码以获得更多信息。
以上是关于如何在我的网站上启用iOS 5 Safari Reader?的主要内容,如果未能解决你的问题,请参考以下文章
如何在我的 html5 日期输入上设置最大值,以便 Safari for iOS 可以识别它?
如何在私有模式下在 iOS Safari 浏览器上启用 LocalStorage?
Appium和iOS Mobile Safari自动化,能做到吗?