【问题标题】:How to disable Safari Reader in a web page如何在网页中禁用 Safari 阅读器
【发布时间】:2011-03-01 06:52:48
【问题描述】:

我很想知道更多关于触发 Safari 中的阅读器选项以及什么不会触发的更多信息。我不打算实施任何会禁用它的东西,但作为一项技术练习感到好奇。

这是我到目前为止通过一些基本的游戏所学到的:

  • 你至少需要一个H标签
  • 它不仅仅取决于字符数,而是取决于 P 标签的数量和长度
  • 可能会查找断句“.”和其他标准

如果带有 H 标签和以下内容,Safari 将提供“阅读器”:

  • 1 个 P 标签,2417 个字符
  • 4 个 P 标签,1527 个字符
  • 5 个 P 标签,1150 个字符
  • 6 个 P 标签,862 个字符

如果您从上述任何一个字符中减去 1 个字符,则“阅读器”选项不可用。

我应该注意到 H 标记的字符数起到了一定的作用,但遗憾的是,当我确定上述结果时并没有意识到这一点。假设 H 标记有 20 多个字符,并在上述结果中固定。

其他一些有趣的事情:

  • P 标签设置 <p style="display:none;"> 会将它们从计数中删除
  • display 设置为 none,然后在 230 毫秒后使用 Javascript 显示它们也避免了 Reader 选项

如果有人能完全确定这一点,我会很感兴趣。

【问题讨论】:

  • 我不这么认为。我可以看到它们是如何相关的,但触发和禁用是完全不同的。
  • 有没有人在 2017 年有解决方案?它再次相关,因为 Twitter iOS 应用程序将“阅读器视图”设置为默认值......
  • Twitter 默认启用了 Safari 阅读器视图,而 Safari 阅读器视图隐藏了我页面的随机部分,这让我想禁用它,但以下答案均无效。

标签: html safari


【解决方案1】:

向潜在的“可读”标签添加标记,例如pdiv,可能会导致可读性算法忽略标签,从而降低分数,希望它不会触发阅读器图标显示。

查看可读性源代码,可以在idclass 属性中执行此操作,因为它对来自这两个属性的组合数据进行模式匹配。比如添加一个“comment”类,像这样

<p class="myClass comment">...</p>

将导致该元素被忽略。为“不太可能”的候选人匹配的模式是:

/combx|comment|disqus|foot|header|menu|rss|shoutbox|sidebar|sponsor/i

在可能增加可读性分数的元素上放置标志可以让您禁用阅读器图标。

【讨论】:

  • 将这些类之一添加到div 是迄今为止禁用阅读器按钮的最简单方法。不建议在您希望被发现的任何页面上这样做,但我发现这在我想定期手动刷新的私人页面上很有用(阅读器和刷新有点太接近了)。
  • @PaulGregory,“可发现”是什么意思?
  • @jtheletter 我想我当时的意思是您希望 Googlebot 将其理解为内容页面和索引的网页,而不是内部 webapp 屏幕 - 即如果您希望其他机器人帮助人们找到页面,不要故意在里面放一些混淆算法的东西。
【解决方案2】:

“你至少需要一个&lt;h*&gt; 元素”——这是不正确的。这是一个例子:http://mathiasbynens.be/demo/safari-reader-test-3

My answer on the other Safari Reader question 提供了更多信息。

您也可以阅读 my blog post on enabling Safari Reader 了解我在该主题上的所有发现。

【讨论】:

  • 这不是我正在寻找的完整答案,但其中一个更有用。下面的其他答案也很有帮助。
  • 对我来说,将所有内容放在一个 ol 标签内是可行的。我用 padding:0;margin:0 设置了它的样式,所以它不会影响布局。
  • 我已经在 Safari 11.1.1 上尝试了所有 3 个测试,但似乎所有这些测试都不再适用了。
  • 为什么这是公认的答案?它回答了如何启用 Safari 阅读器。问题是如何禁用它。
【解决方案3】:

【讨论】:

    【解决方案4】:

    根据The Register,Safari阅读器基于开源项目Readability。你或许可以通过the code 寻找线索。

    【讨论】:

    • 基于,还是受其启发?我知道可读性代码,但希望能解决这个问题。谢谢。
    • @michael 顺便说一句,绝对“基于”。如果您查看 Safari 的“关于”框,您会看到 arc90 的功劳……
    • 代码链接失效。
    【解决方案5】:

    它看起来像是 Safari 阅读器采用的一个相当复杂的算法。我想这背后有更简单的东西。 很可能是一份很好的 W3C 文档,其中包含您提到的一些 SEO 最佳实践。

    我相信这样的事情:

    1. 至少一个 H1
    2. &lt;p&gt;标签打开和关闭,并正确地跟随每个标题标签
    3. 一般包含层

    很可能读者正在寻找与新的HTML 5 类似的东西,所以是类调用者文章或类似的东西。

    有趣的是,Apple 为何没有透露任何相关信息。

    【讨论】:

      【解决方案6】:

      这对我有用:

      我将所有内容放在一个 ol 标记内。

      <ol style = "padding:0;margin:0"> 
         my content
      </ol>
      

      从我在其他地方读到的内容来看,阅读器部分是由页面上的字数触发的,但它不计算 ol 内的字数。

      【讨论】:

      • 这是我发现的唯一可行的解​​决方案。谢谢。
      • 我刚刚又测试了一遍,这个方法不行。我认为苹果以某种方式解决了这个问题。还有什么技巧吗?
      【解决方案7】:

      【讨论】:

      • 那个帖子不见了。请考虑总结内容,而不仅仅是链接。
      【解决方案8】:

      我的内部有一个 div,它包含了我的所有内容。将这个 div 更改为一个元素,并添加一个类来删除由 , 创建的所有填充,删除我的移动网站上的阅读器按钮。

      【讨论】:

        猜你喜欢
        • 2012-12-10
        • 1970-01-01
        • 2011-10-27
        • 1970-01-01
        • 2021-10-29
        • 2010-10-04
        • 1970-01-01
        • 2022-10-19
        • 1970-01-01
        相关资源
        最近更新 更多