【发布时间】:2020-10-29 14:08:25
【问题描述】:
我正在创建一个脚本来注册用户在我的网站中制作 CTRF + F 的位置。 为此,我制作了一个代码,每次用户调用浏览器的 find 时都会显示该代码,并将他执行此操作的页面的名称推入一个数组。我的一些页面实际上是选项卡,这意味着当我更改选项卡时浏览器的查找不会自行关闭。 所以我想要一个脚本来在我更改选项卡或页面时关闭浏览器,因为如果不是,即使用户更改选项卡并进行其他研究,浏览器的查找也可以保持打开状态。现在我有这个:
var ctrlf = [];
var url = '';
window.addEventListener("keydown", (event) => {
url = url_parse();
if ((event.ctrlKey && (event.key == "f")) || (event.key == "F3")) {
ctrlf.push(url_parse());
//url_parse is a function to parse the url of the page into a string (see this as the id of a page / tab)
}
document.addEventListener("click", (event) => {
if(url != url_parse()){
var e = new KeyboardEvent('keypress', { 'key': 'Escape' })
document.dispatchEvent(e)
}
});
我的想法是模拟 Escape 的按键,但这不起作用。
欢迎任何改进我的代码的想法或关于如何在用户更改选项卡时关闭浏览器的查找的新想法(当用户更改选项卡时仅更改 url 的哈希值)。
谢谢
【问题讨论】:
-
不,我已经试过了,它不起作用
-
您能否再描述一下您所说的不工作是什么意思。你是说按键事件不会在点击时触发?另外,您是否看到小写的 f 因为 keydown 事件表示按下了哪个键(而不是结果字符)?
-
我看到事件已创建(我可以记录它)但浏览器的查找没有关闭,就像我手动按 ESC 键一样
标签: javascript keyboard-shortcuts keypress ctrl