gpt4 book ai didi

javascript - 关闭 Firefox/Internet Explorer 中的默认 CTRL-F 搜索栏

转载 作者:搜寻专家 更新时间:2023-11-01 04:52:09 24 4
gpt4 key购买 nike

我目前正在设计一个提供自定义搜索功能的网页。由于这可能会干扰浏览器在 CTRL-F 上提供的默认搜索栏,我们正在禁用该事件,以便默认搜索栏不会弹出,我们的显示相反。

问题是,在 Firefox 和 Internet Explorer 中,与 Chrome、Safari 或 Opera 不同,搜索栏可以在所有选项卡之间共享。因此,如果我在其他选项卡中,执行 CTRL-F 弹出默认搜索栏,现在跳转到此页面,搜索栏仍然存在,这完全违背了我们的目的。

我知道这听起来不可能,但是,有什么方法可以杀死默认搜索栏,即通过 JavaScript 将其完全隐藏吗?然后,当我们检测到用户正在进入我们的页面时,我们可能会这样做。

如果不可能,那么有什么方法可以禁用对特定元素的默认搜索,比如 contenteditable div?因此,当 CTRL-F 遍历该词的页面时,每次按下 ENTER 都会突出显示每个实例,其中的所有词元素被完全忽略?

最佳答案

沙盒脚本

您无法通过 JavaScript 控制页面中其他选项卡的行为或内容,因此这是不可能的。

基本上:实现此目标的唯一方法是 fork 源代码并制作您自己的浏览器版本,您可以在其中为搜索栏提供自己的功能。对于 IE,您可以在例如 .Net 中为 Web 控件创建一个包装器并分发它,但在这里您无法控制 IE 版本。

这在 IMO 中有点极端,但在普通版本中你无法绕过这个并且可以理解,因为这会引发一大堆安全问题。

扩展似乎是一种替代方法,但它们也受制于安全性并且在这方面会受到限制,因此您不会比以下更进一步 -

有限的浏览器行为控制

可以覆盖ctrl + f 但这只会在运行脚本的选项卡上起作用(我强烈反对在未经用户批准的情况下执行此操作,因为这会更改默认的浏览器行为)。

一个例子:

document.onkeydown = function(e) {

/// for IE
e = e || event;
var keyCode = (window.event) ? e.which : e.keyCode;

/// check ctrl + f key
if (e.ctrlKey === true && keyCode === 70) {
e.preventDefault();

console.log('Ctrl + f was hit...');

return false;
}
}

Online demo here

更新:对于 Mac command 键,这里已经回答了:
How does one capture a Mac's command key via JavaScript? .

关于javascript - 关闭 Firefox/Internet Explorer 中的默认 CTRL-F 搜索栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19202110/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com