2010-05-03 82 views
3

我想知道是否可以使用JavaScript拦截或阻止用户使用浏览器的“查找”功能在页面上查找文本。 (相信我,我有一个很好的理由!)我猜测答案是“否”,除了明显拦截Cmd/Ctrl + F之外。覆盖浏览器“查找”功能

第二好的解决方案是拦截突出显示浏览器在查找过程中执行的文本。在任何浏览器中有没有办法做到这一点?

+5

只是好奇,是什么原因? – 2010-05-03 19:54:49

+0

这是一个基于Web的文本编辑器。理想情况下,我可以拦截每个查找并显示我自己的查找和替换对话框。有两个不同的发现只是混淆!除此之外,还有更多,但基本上,浏览器的查找只会在这个应用程序的上下文混淆。 我想我会拦截Cmd/Ctrl + F并祈求用户使用标准键盘快捷键。 – 2010-05-04 21:11:56

+0

截取Ctrl + F有点危险,因为它可能在其他语言中有不同的映射,但我认为这是你最好的选择。因为即使您设法检测到“查找”,您将如何查明原始搜索字符串是什么,搜索时区域不区分大小写?并且是否使用了“查找下一个/查找上一个”按钮?听起来像我不可能完成的任务。 – 2010-05-04 21:31:36

回答

5

不是没有浏览器专用扩展的帮助,我认为,如果有的话。这是一个完全在JavaScript上下文之外的过程。

+5

并感谢上帝! – doublep 2010-05-03 19:55:30

+0

当浏览器查找突出显示页面上的一些文本时,您确定没有发生任何事件?在任何浏览器?由于您可以将选定的文本复制到剪贴板,因此我认为某处可能会改变选定的文本属性,您可以从通常选择文本的鼠标或键盘事件中区分出来。 – 2010-05-04 21:15:23

+0

@Trevor在Firefox中,“查找”选项与标准选择不同。它不能被复制+粘贴,也不能被删除。我99%肯定这不是一个正常的选择,所选的文本属性不会改变。 (我现在不能深入测试它,但如果我证明是错的,我会感到惊讶)。但在IE 8中,它看起来像正常的选择被操纵。你可能会在那里成功。 – 2010-05-04 21:22:46

2

如果你真的,绝对必须这样做 - 那么有一个(非常糟糕的)解决方案:将页面渲染为图像。

+0

catpcha规则;) – 2010-05-03 20:06:07

+0

不,我需要保留其他行为;例如,我希望用户能够使用鼠标选择文本,并输入文本。我只是想避免他们用Find来选择它。 – 2010-05-04 21:07:09