Google chrome 如何停止chrome标签焦点?

Google chrome 如何停止chrome标签焦点?,google-chrome,google-chrome-extension,Google Chrome,Google Chrome Extension,我正在写一个chrome扩展,它会在一定的时间间隔后刷新页面。我让它工作正常,但出现了一个新问题。。 每当页面刷新时,选项卡就会突出显示(开始闪烁)或进入焦点。这件事越来越受到关注 现在,根据chrome浏览器状态的不同,这一功能会有所不同,但核心问题是相同的: 1.如果用户在等待页面刷新时将标签切换到另一个标签(假设在gmail.com中编写电子邮件),在刷新时,当前的邮件标签将失去焦点(因此,如果不先单击窗口,他将无法继续编写电子邮件) 如果用户切换到其工作区中的任何其他应用程序(如我的电脑

我正在写一个chrome扩展,它会在一定的时间间隔后刷新页面。我让它工作正常,但出现了一个新问题。。 每当页面刷新时,选项卡就会突出显示(开始闪烁)或进入焦点。这件事越来越受到关注

现在,根据chrome浏览器状态的不同,这一功能会有所不同,但核心问题是相同的: 1.如果用户在等待页面刷新时将标签切换到另一个标签(假设在gmail.com中编写电子邮件),在刷新时,当前的邮件标签将失去焦点(因此,如果不先单击窗口,他将无法继续编写电子邮件)

  • 如果用户切换到其工作区中的任何其他应用程序(如我的电脑、outlook等),刷新时,任务栏上的chrome图标将开始闪烁(非常烦人)

  • 如果用户打开了多个chrome窗口,每个窗口都有一个运行刷新代码的选项卡,那么在刷新时该窗口将获得焦点(位于顶部)。每当出现特定刷新时,所有chrome窗口都会重复此操作

  • 重现问题的步骤:

  • 编写一个简单的扩展

  • 在背景页面中,创建一个新选项卡,其中包含:

    chrome.tabs.create({ url: "https://drive.google.com/", active: false})
    
    chrome.tabs.update(tab_id, {url: "https://drive.google.com/",
                                active: false,
                                highlighted: false});
    
  • 现在,在循环中,每分钟后,使用以下命令刷新此选项卡:

    chrome.tabs.create({ url: "https://drive.google.com/", active: false})
    
    chrome.tabs.update(tab_id, {url: "https://drive.google.com/",
                                active: false,
                                highlighted: false});
    
  • 一旦你开始这段代码,要么最小化chrome窗口,要么转移你的工作空间,把注意力放在其他事情上

  • 每次调用tabs.update()时,Chrome窗口要么从任务栏中取消动画化,要么获得对它的关注

  • 我想要的是在页面刷新时删除此焦点。 如果有人能帮我做这件事,我将不胜感激

    谢谢, 乌米尔

    编辑:

    我的background.js文件的代码

        chrome.webNavigation.onErrorOccurred.addListener(function (_errorDetails) {
        var myUrl = 'myPage.htm';
        chrome.tabs.update(_errorDetails.tabId, { url: myUrl, active: false, 
        highlighted: false, selected: false },
            function (_tabDetails) {
                chrome.windows.update(_tabDetails.windowId, { drawAttention: false });
            });
        });
    
    Iv试图使所有相关参数为假以停止聚焦

    此外,在myPage.htm上,在pageload上调用函数reload()

        function reloadPage() {
        //code for 10 second delay
    
        location.reload();  
        }
    

    myPage.htm本身就是一个简单的页面,显示了几行文字,如“无法加载页面”等。

    我更改了代码,并按照我的要求让它为我工作。 我所做的不是使用重新加载功能刷新页面,而是使用chrome扩展的消息传递技术将消息(包含url和tabID)从我的js发送到background.js,并用url更新那里的相关选项卡


    我知道这不是一个完美的解决方案,但它对我有效,因此我将与大家分享。

    它在我的系统中起着例外的作用(即无焦点、无闪烁)。也许问题出在别的地方。发布更多代码。还有,你在什么系统上运行这个?什么Chrome版本?“我知道这不是一个完美的解决方案”:为什么?这是你一直以来应该做的事情(事实上,从你最初的描述来看,我觉得你已经这样做了)。顺便说一句,如果你觉得你没有做到最好,分享代码,这样我们就可以提出可能的改进。