【发布时间】:2018-08-06 13:51:18
【问题描述】:
我有一个 chrome 扩展程序,当我点击该页面上的特定图标时会显示输入。
我可以在该输入中输入一些内容,但是一旦我点击了其他地方,无论我多久再次点击该输入,我都无法将焦点返回到该输入。
发生这种情况的原因是网站本身(我无法修改)总是关注该页面上的文本区域,因此在此处输入文本。
我已经尝试过以下方法:
$(document).on('blur', '.giphySearch input', function () {
var input=this;
setTimeout(function() {
input.focus();
})
});
但没有真正的努力(它似乎只会减慢一切;但输入仍然失去焦点)
有什么方法可以禁用所有“焦点窃取”脚本并在我的工作完成后再次打开它们?
(我知道总是从页面获得焦点的文本框类。但是我无法更改该页面上的任何内容,因为我在 chrome 扩展中)
只是为了完成: 我正在谈论的输入:
<div class="giphySearch"><input autofocus type="text" value="huih"/></div>
【问题讨论】:
-
你可以试试 $('.giphySearch').off() 或 $('.giphySearch input').off()。它应该摆脱所有使用 .on() 添加的事件监听器。文档:api.jquery.com/off
-
我前几天回答了一个类似的问题,请问您看这里,告诉我这是否与您的情况相关? stackoverflow.com/questions/51690669/…
-
您可以尝试禁用指针事件......并在重新启用它们后:pointer-events: none;
标签: javascript jquery html