【问题标题】:Chrome API: Get Window TypeChrome API:获取窗口类型
【发布时间】:2019-01-26 01:23:17
【问题描述】:

我正在处理一个项目并遇到了一个问题,我需要将 chrome 应用程序窗口与普通窗口区分开来。 (具体来说,我使用 bash 脚本中的 --app=URL)由于设置方式,我必须在所有窗口上运行 js 脚本,但只有在它们是应用程序窗口时才执行某些操作。似乎列出的 API here 是我需要将一个窗口与另一个窗口区分开来的,但我设法得到的只是表示函数或对象未定义的错误。那么我应该如何使用window.type 之类的东西从 API 中获取窗口类型?

此外,如果您知道其他方法来区分 chrome 窗口是否是应用程序窗口,那么这也可以。我真的只需要能够做到: if (window is app) //I don't really care how it's done { doSomething(); }

更多信息:

  • 已在 Chrome 和 Chromium 中试用(均已完全更新)
  • 使用 Ubuntu 18.04
  • JavaScript 正在应用程序窗口中运行,而不是扩展程序(未开发扩展程序)

【问题讨论】:

  • 扩展不是apps,所以你不能使用他们的API。
  • 我添加了更多信息。我想要获取窗口类型的 JavaScript 正在应用程序中运行,而不是扩展程序。此外,我一直无法让该 API 在应用程序、扩展程序、普通窗口或其他任何东西中工作,所以很明显我做错了什么。

标签: javascript window google-chrome-devtools google-chrome-app chromium


【解决方案1】:

你可以试试下面的。在您的控制台中

windowType=window.location.host

如果您在应用程序窗口中,它应该返回,它将作为“应用程序”返回。使用它你可以编写你的逻辑

if (windowType === 'app' )  //I don't really care how it's done
{
   doSomething();
}

希望对你有帮助。

【讨论】:

    【解决方案2】:

    执行windowType.window.location.host 返回的不是窗口类型,而是我的bash 脚本中--app=url 标志提供的url。这意味着如果您打开一个普通窗口并转到与应用程序窗口中提供的相同的 url,两者都将返回相同的 url。但是,由于普通窗口的内容相同,只是窗口类型不同,因此我需要在网页上运行的 JavaScript 代码是相同的,因此我希望它在两个窗口上都运行。所以这个解决方案对我有用,但对于任何正在寻找窗口特定标识符的人,而不仅仅是一个 url,我想这仍然悬而未决。

    (感谢拉加万拉詹)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-02-26
      • 2013-02-18
      • 1970-01-01
      • 2011-03-03
      • 2012-01-09
      • 1970-01-01
      • 2014-11-19
      • 2021-04-03
      相关资源
      最近更新 更多