【问题标题】:Prevent window.open from focusing防止 window.open 聚焦
【发布时间】:2011-08-01 10:55:47
【问题描述】:

我想使用 window.open() 在 Google Chrome 的新标签页中打开一个页面,但我不希望该窗口在打开后获得焦点,而是留在后台。

这可能吗?它只需要在谷歌浏览器上工作。它还可以使用 Google Chrome 扩展 API。

谢谢

【问题讨论】:

    标签: javascript google-chrome google-chrome-extension


    【解决方案1】:

    正确的方法是使用扩展 API:

    chrome.tabs.create({url: "http://...", selected: false});
    

    代码应放置在背景页面中。如果您在内容脚本中需要它,您可以将消息传递到后台页面,如下所示:

    //content script
    chrome.runtime.sendMessage({link: link});
    
    //background page
    chrome.runtime.onMessage.addListener(function(message, sender, sendResponse) {
        if(message.link) {
            chrome.tabs.create({url: message.link, selected: false});
        }
    });
    

    【讨论】:

    • 正是我所需要的。谢谢!
    • 嘿,有什么通用的方法来完成上述操作,以便它适用于所有浏览器吗?焦点功能对我不起作用
    • @dcastro:欣赏这个例子,但不要使用多年不推荐使用的 API
    • @Xan 啊,对不起!我从google's own documentation 的视频中获得了这些示例(请参阅底部的视频)。我猜他们没有让这些保持最新状态。
    【解决方案2】:
    window.open(url, name, features);
    window.focus();
    

    不过,您会在短时间内看到新窗口。

    【讨论】:

      【解决方案3】:

      所有浏览器都有出路

      function openURL(url, opt){
        if (opt == 0){ // current window
          window.location = url;
        }else if (opt == 1){ // new window
          window.open(url);
        }else if (opt == 2){ // background window
          window.open(url); self.focus();
        }
      }
      

      所以通过使用它,你可以做任何你想做的事情。

      openURL( "http://www.google.com", 0 ) --> open in same window
      openURL( "http://www.google.com", 1 ) --> open in new window
      openURL( "http://www.google.com", 2 ) --> open in new window but in background.
      

      【讨论】:

        【解决方案4】:

        是的,您可以这样做,只需使用:

        var myWindow = window.open(url,name,features);
        myWindow.blur();
        

        【讨论】:

        • 似乎不适用于最新版本的 Chrome
        【解决方案5】:

        从子窗口激活父窗口或在打开子窗口后激活自身。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2012-06-01
          • 2020-10-23
          • 2015-01-07
          • 1970-01-01
          • 1970-01-01
          • 2011-11-28
          • 2021-01-30
          • 1970-01-01
          相关资源
          最近更新 更多