为了账号安全,请及时绑定邮箱和手机立即绑定

用户脚本不会使某些页面上的文本输入不集中

用户脚本不会使某些页面上的文本输入不集中

幕布斯6054654 2021-04-30 13:20:54
我有一个小的Greasemonkey脚本,该脚本意在使所有内容失去焦点,只是将焦点返回到网页的顶层。代码如下:document.addEventListener('keydown', function(event) {    if (event.ctrlKey && event.keyCode === 32) {        document.activeElement.blur()    }}, true);除了WhatsApp Web之外,它在我使用的所有网页上都能正常工作。它立即重新调整消息输入框的焦点。我已经在Firefox中关闭了自动对焦功能。怎样才能确保没有什么真正成为焦点?甚至没有WhatsApp Web消息输入框。
查看完整描述

1 回答

?
暮色呼如

TA贡献1853条经验 获得超9个赞

浏览器控制台中是否有任何错误或消息?您使用的是哪个浏览器版本?

无论如何,在不创建WhatsApp帐户或发布MCVE的情况下,这里有一些可能性:

  • 该页面使用JS重置焦点-由触发keydown

  • 该页面使用JS重置焦点-由其他触发。

  • 该页面已重置默认的活动元素((在某些浏览器中可能是)。

  • 页面已被覆盖 document.activeElement.blur()

此代码可能有效:

document.addEventListener ('keydown', zEvent => {

    if (zEvent.ctrlKey && zEvent.keyCode === 32) {

        let actElem     = document.activeElement;

        if (actElem)    actElem.blur ();

        else            console.error ("document.activeElement is unset");


        zEvent.preventDefault ();

        zEvent.stopImmediatePropagation ();

    }

}, true);


如果不是,并且浏览器控制台中没有相关消息,请从控制台中运行:


console.log (document.activeElement.blur.toSource() );

并查看它是否不是本机函数。


您可以尝试的另一件事是查找或创建一个不同的输入及其.focus()。(document.body.focus()las经常不会起作用,las。)


否则,您将必须找到重置焦点的javascript并将其阻止。如何做这样的事情完全取决于页面代码是什么。这是一个不同的问题,但是其他堆栈溢出问题已经涵盖了各种机制。


查看完整回答
反对 回复 2021-05-13
  • 1 回答
  • 0 关注
  • 120 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信