Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Firefox阅读器视图是如何运行的_Javascript_Firefox_Firefox Reader View - Fatal编程技术网

Javascript Firefox阅读器视图是如何运行的

Javascript Firefox阅读器视图是如何运行的,javascript,firefox,firefox-reader-view,Javascript,Firefox,Firefox Reader View,摘要 我正在寻找创建网页的标准,并[相当]肯定它会出现在Firefox阅读器中 查看,如果用户需要 有些网站有这个选项,有些没有。一些文本较多的用户没有此选项,而另一些文本较少的用户则没有此选项。堆栈溢出 实例在Reader中仅显示问题,而不显示任何答案 视图 问题 我已经将我的Firefox从38.0.1升级到38.0.5,并发现了一个名为ReaderView的新功能——这是一种覆盖,可以消除“页面混乱”,使文本更易于阅读。 Readerview位于地址栏的右侧,是某些页面上可单击的图标 这很

摘要

我正在寻找创建网页的标准,并[相当]肯定它会出现在Firefox阅读器中 查看,如果用户需要

有些网站有这个选项,有些没有。一些文本较多的用户没有此选项,而另一些文本较少的用户则没有此选项。堆栈溢出 实例在Reader中仅显示问题,而不显示任何答案 视图

问题

我已经将我的Firefox从38.0.1升级到38.0.5,并发现了一个名为ReaderView的新功能——这是一种覆盖,可以消除“页面混乱”,使文本更易于阅读。 Readerview位于地址栏的右侧,是某些页面上可单击的图标

这很好,但从编程的角度来看,我想知道“读者视图”是如何工作的,它适用于哪些页面的标准。我对Mozilla Firefox网站做了一些探索,但没有明确的答案(我找到的任何类型的编程答案都没有),我当然搜索过/浏览过这个网站,这只是返回了对Firefox插件的引用-这不是一个插件,而是新Firefox版本的主要部分

我假设readerview使用HTML5并提取
内容,但事实并非如此,因为它在Wikipedia上工作,Wikipedia似乎没有使用
或类似的HTML5标记,而readview提取某些
内容并单独显示它们。此功能适用于某些HTML5页面,如wikipedia,但不适用于其他页面


如果有人知道Firefox ReaderView的实际操作方式,以及网站开发人员如何使用该操作,你能分享一下吗?或者,如果你能找到这些信息的位置,你能给我指出正确的方向吗?因为我一直找不到它。

今天早上,通过阅读gitHub代码,过程是页面元素以一种很好的顺序列出,
),看看他们是否能提供更全面的答案

我没有看到但期望看到的是基于
(或其他)相关标签中文本内容量的分数

关于这个问题或答案的任何改进,请分享

编辑:
当页面文本内容有效时,
元素中的
标记(HTML5)中的图像将保留在阅读器视图中

您需要在文本周围至少有一个
标记,您希望在Reader视图中看到该标记,并且文本内部7个单词中至少有516个字符

例如,这将触发ReaderView:

<body>
<p>
 123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789
 123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789
 123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789
 123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789
 123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789
 123456789 123456
</p>
</body>


123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789
123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789
123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789
123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789
123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789
123456789 123456


参见我在

上的示例,我遵循了Martin指向Readability.js的链接,并查看了源代码。这是我对它的看法

该算法适用于段落标记。首先,它试图识别页面中肯定不是内容类表单的部分,并将其删除。然后,它遍历页面上的段落节点,并根据内容的丰富程度分配分数:它会根据逗号的数量、内容的长度等给他们打分。请注意,少于25个字符的段落会立即被丢弃

分数然后“冒泡”DOM树:每个段落将把它的分数的一部分添加到它的所有父节点上-直接父节点将满分添加到它的总分数中,祖父母只得到一半,曾祖父母得到三分之一,依此类推。这允许算法识别可能是主要内容部分的更高级别元素

虽然这只是Firefox的算法,但我的猜测是,如果它在Firefox上运行良好,那么在其他浏览器上也会运行良好

为了使这些读者浏览算法适用于您的网站,您希望它们能够正确识别页面中内容密集的部分。这意味着您希望页面上内容较多的节点在算法中获得高分

因此,在这些算法看来,以下是一些提高页面质量的经验法则:

  • 在内容中使用段落标记!许多人倾向于忽视 他们支持

    标签。虽然看起来很相似,但很多 与内容相关的算法(不仅仅是读者视图算法)严重依赖 在他们身上
  • 在标记中使用HTML5语义元素,如
    。尽管它们不是唯一的标准(正如你在问题中所指出的),但它们对阅读你的文章的计算机非常有用 页面(不仅仅是阅读器视图)以区分 你的内容。Readability.js使用它们来猜测哪些节点可能或不可能包含重要内容
  • 将主要内容包装在一个容器中,如
    元素。这将从所有段落标记中获得分数 其中,并被确定为主要内容部分
  • 使DOM树在内容密集的区域保持较浅。如果你有很多 由于各种因素破坏了你的内容,你只会让生活变得更艰难 对于算法:不会有一个元素脱颖而出 作为父母,有很多内容繁重的段落,但也有很多 把分数低的分开

  • Firefox Reader View使用的库的源代码位于GitHub上,如果有帮助的话……谢谢@RichardNeish-上厕所