【问题标题】:Checking if new tab or window can be opened in javascript检查是否可以在 javascript 中打开新选项卡或窗口
【发布时间】:2019-11-12 22:51:31
【问题描述】:

有没有办法检查当前浏览器是否支持多个选项卡/窗口。由于应用内浏览器,这现在很常见。

【问题讨论】:

  • 问题不清楚。想知道浏览器是否支持window.open()功能?
  • 如果我们还不想打开一个窗口并根据它显示不同的体验,比如在他们点击之前说“这将在新标签中打开”的消息,该怎么办。

标签: javascript inappbrowser


【解决方案1】:

根据mdn window.open docs,如果调用不成功,window.open() 调用应该返回null

返回值

一个WindowProxy 对象,它基本上是Window 的薄包装器 代表新创建窗口的对象,并具有其所有功能 可用的。 如果窗口无法打开,返回值为 而不是null返回的引用可用于访问属性 新窗口的方法和方法只要符合同源 政策安全要求。

就在不实际尝试打开窗口的情况下检查打开窗口的能力而言,没有可用的 API(据我所知)。您可以再次立即打开和关闭窗口。根据浏览器的不同,用户可能会也可能不会看到新窗口或标签的短暂闪烁。

function window_open_check()
{
  w=window.open()
  if (w !== null){
    w.close()
    return true
  }
  return false
}

// Note:window.open() is blocked in StackOverflow scripts
console.log("window.open available:",window_open_check());

【讨论】:

  • 如果我们还不想打开一个窗口并根据它显示不同的体验,比如在他们点击之前说“这将在新标签中打开”的消息,该怎么办。
  • 据我所知,如果不尝试打开窗口,就无法检查能力。您可以通过 w=window.open(); 立即再次关闭窗口。 (如果 w!== null) w.close(),
  • 如果用户没有注意到任何事情,我可以接受这个答案。
猜你喜欢
  • 2011-10-29
  • 2011-03-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-01-09
相关资源
最近更新 更多