移除对 cmd/ctrl-f 的覆盖

因为您触发了 Ctrl + Alt + F(或 /,效果相同),而该组合没有默认的浏览器绑定可供回退。请尝试在一个更大的主题上进行操作,例如 这个主题,并使用普通的 Ctrl + F

2 个赞

谢谢。这似乎是原因。有人知道为什么 Chromebook 上是 Ctrl-Alt-F 吗?这是那里的标准按键,还是在该平台上无法覆盖?

我想知道为什么在可能的情况下,Discourse 在所有平台上不保持一致。

它通常也会占用 alt 键,例如,我在 Windows 上。这里可能有一些关于兼容性的东西。

这些用户还期望 control-f 搜索当前 URL,但浏览器无法做到,因为只加载了 20 篇帖子。弹出窗口解释说,如果你想使用浏览器功能,只需再次键入 control-f 即可。

你是否有更直观的方法让人们搜索当前主题中的所有帖子?

2 个赞

这真是令人震惊的讽刺。

  1. 看到关于此帖的电子邮件更新。
  2. 点击链接开始阅读。看到这句话:
    你期望的是用 control-F 找到该主题中的帖子,但这并不是你想要的。 “即使我的浏览器找不到,也能在当前主题中找到帖子的” 快捷键是什么?难道 control-f 在当前主题中找不到帖子不符合预期吗?
  3. 想回复,但意识到我没有登录,于是我高亮并复制了文本(以便登录后搜索/查找)。
  4. 点击屏幕右上角的登录,完成了整个登录过程。
  5. 被重定向回帖子,但却是在帖子的顶部。
  6. 按下 cmd-f
  7. 按下 cmd-v
  8. 按下回车键
  9. 什么也没找到

简直是无稽之谈。这个东西的重点是找到“尚未加载到页面上”的内容,但它却不起作用?


至于对实际评论的回应:
不,这并不违反预期。cmd-f 的预期是,如果它不在页面上,就找不到任何东西。cmd-f 不是“搜索互联网上这个‘帖子’”的功能。你凭空创造了这个功能。如果东西不在页面上,就找不到。这没关系。

附注 #1
即使它找到了内容,我也无法在不学习一套全新的范式的情况下浏览结果(不,上/下/回车键并不难——但它与你在互联网上其他地方使用的不同,而且是 Discourse 网站独有的)。我也无法像在互联网其他地方那样多次按下 cmd-f 来遍历找到的结果。

附注 #2
你构建的 cmd-f 功能存在各种原生功能没有的限制,“你的搜索词太短”就是其中之一。我尝试搜索此帖中的“/”,因为它很重要,但我无法这样做。

附注 #3
所有这些都是因为有些帖子非常非常非常大,无法加载到页面上,这似乎有点牵强。考虑到当今互联网在堆栈的每一层都有缓存选项,我很难理解这一点。也许这才是值得解决的“bug”?

1 个赞

我不确定我是否完全理解。按两次有什么问题?这不就是你想要的吗?

1 个赞

当我按两次 cmd-f 时,是否也应该开始三击链接?我们应该实施吗?


你在这里完全误解了重点,这真是太深刻了。你改变了浏览器工作方式的默认设置。 这是极其出乎意料的。

3 个赞

我同意。我的预期是在页面中查找。劫持也破坏了 ctrl-g ctrl-shift-g 的行为。

可以理解为什么 Discourse 可能想覆盖它,因为它破坏了用户认为所有帖子都已加载的预期。但是,这可以通过精确指示加载了哪些帖子或未加载哪些帖子来解决。旧的分页方法在这方面是透明的。

当然,拥有一个帖子搜索工具很有用,无论是分页模式还是无限滚动模式。将一种搜索劫持为另一种搜索,而不是通过“帖子搜索”按钮或不与标准行为冲突的热键以不同的方式公开它,这会让人感到震惊/困惑。

我不想抱怨太多,因为设计决策是可以理解的,而且我已经学会了适应它,但我只是想指出,我认为“违反预期的假设”是不正确的。

存在一系列出乎意料的情况需要权衡,以满足搜索者的需求……这是一种“两害相权取其轻”的局面。

  • 出于性能原因,并非所有内容在滚动时都可用。Discourse 支持各种内容,如 GIF、视频、投票、日历、iframe、图表等……一个主题中可能包含成千上万个这样的内容。将所有这些内容保留在 DOM 中可能会导致页面无法使用。

  • 用户不知道哪些内容当前已加载,这会影响 ctrl + f 的有效性。这种期望是假设所有内容都在同一个“页面”上,因此可以搜索。

由于期望 ctrl + f 搜索整个页面,而整个页面又不可用……因此尝试了一种折衷方案。

你已经提出了几个论点来尝试解决这个问题:

  • 禁用帖子中的动态内容(包括图像)。

    这不会发生——如果我们允许动态内容(Facebook、Discord、NodeBB、Khoros、Higher Logic,不乏其数),我们会在一夜之间失去所有客户。

  • 禁用无限滚动并使用传统分页

    更有可能,但这真的能解决这个问题吗?你通过只允许每页加载一定数量的帖子来减少浏览器负载,用户需要手动翻页才能继续阅读。

    现在 ctrl + f 在这里按预期工作,但实际上只和你记忆一样好。

    如果你刚刚阅读了 100 篇帖子,跨越了 10 页,然后想找你刚刚读过的内容……它是在第 2 页?第 3 页?我的记忆肯定没那么好。

    所以现在你可能会这样做…… ctrl + f……返回 ctrl + f……返回 ctrl + f……?

    对我来说,似乎没有一种单一的绝佳体验,即使你坚持使用浏览器的默认设置。使用 Discourse,如果你对浏览器默认设置的缺失感到不满,你必须学习一样东西。

8 个赞

只是友善地提醒一下,所有帖子和讨论都应尽量保持文明和富有成效。如果变得过于争论/过于简化,我将关闭此主题。:pray:

7 个赞

没有人否认这一点。只是不要劫持 cmd-f 来做这件事。还有无数其他的键盘组合可供选择。选择其中任何一个。

3 个赞

但是重点是 ctrl + f 由于自动分页而无法按预期工作,因此建议的替代方案会首先出现,因为它实际上会搜索主题内的所有内容

所以我想,考虑到所有的折衷,选择在于解释:

  • 您的搜索不起作用,因为当您滚动时,我们自动翻页了,所以您应该点击 :mag: (或使用 /,这是一个备用快捷方式)
  • 您的搜索效果可能更好,但如果不行,请再次使用快捷方式

如果我们不捕获 ctrl + f 并且它不起作用,因为我们在您滚动时加载了一些其他内容,您会同样感到恼火吗?然后您会尝试应用内搜索作为解决方案吗?尝试向上滚动然后重试?别的什么?

除了“不要这样做,因为它很常见”(这是有效的,因为存在预期)之外,可能还有一些额外的论点需要考虑:

7 个赞
  • 覆盖并非 Discourse 所独有。在提到的其他地方,Microsoft Office 工具也会覆盖 Ctrl+F。这是出于类似的原因(即并非所有文本都可供 Ctrl+F 使用)。
  • 实际的功能/意图并未被覆盖。它是一个“查找子字符串”函数。如果 Ctrl+F 被覆盖为书签命令,我可能会表示同情。
  • 浏览器默认的 Ctrl+F 功能通常会失败,但不会指示原因。当文本实际上出现在主题中但未找到时,很容易推断文本不存在。在一个并非极其简短的主题中,大多数搜索都会产生假阴性。您期望用户了解 Discourse 中的无限滚动实现细节,才能有效使用 Ctrl+F。
  • 对于那些不喜欢覆盖并且了解帖子分页工作原理的人来说,您只需再按一次即可。

如果这里的主要问题是我们不想打破用户的期望,那么最终我认为以一种隐晦的方式打破他们的期望(即 Ctrl+F 显示“无匹配项”,而文本实际上出现在主题中)比以一种透明的方式打破他们的期望(打开非原生搜索栏)是更大的弊端。

保持现状。

8 个赞

我理解你们希望保持社区文明的愿望。我支持这一点,但请考虑转而管理用户。关闭一个话题会影响整个社区。这是我们显然想讨论的一个话题。

我明白你的意思。搜索功能应该有两个目的:搜索主题或帖子,以及在主题或帖子内搜索关键词。

我在这里将“主题”和“帖子”互换使用,但希望意思清晰明了。