Javascript Chrome软件包应用程序:打开模式窗口还是使用引导?

Javascript Chrome软件包应用程序:打开模式窗口还是使用引导?,javascript,twitter-bootstrap,google-chrome,google-chrome-app,Javascript,Twitter Bootstrap,Google Chrome,Google Chrome App,我已经写了我的第一个chrome应用程序,但我有一个问题。我似乎无法打开模态窗口?这个功能是否存在,或者我应该使用引导来显示模式窗口 我想知道其他人在做什么 我可以打开另一个窗口,但两个窗口同时处于活动状态,并且可以更改,这不是我想要的 我正在尝试创建一个设置菜单,这样一个模式窗口将打开并允许您进行更新,然后在关闭它时,它会将控制权返回到主窗口 有什么想法吗?添加到manifest.json这行 "browser_action": { "default_popup":"popup.html" }

我已经写了我的第一个chrome应用程序,但我有一个问题。我似乎无法打开模态窗口?这个功能是否存在,或者我应该使用引导来显示模式窗口

我想知道其他人在做什么

我可以打开另一个窗口,但两个窗口同时处于活动状态,并且可以更改,这不是我想要的

我正在尝试创建一个设置菜单,这样一个模式窗口将打开并允许您进行更新,然后在关闭它时,它会将控制权返回到主窗口


有什么想法吗?

添加到manifest.json这行

"browser_action": {
"default_popup":"popup.html"
},
"options_page":"settings.html"
where popup.html-模式窗口


settings.html-设置窗口显示在扩展菜单中

与浏览器选项卡一样,Chrome应用程序顶级窗口彼此之间没有模态概念。每个人都生活在自己的世界里。您有几个选择:

尝试使用alwaysOnTop选项。有关示例,请参见。这可能足以满足您的需要

当您想要成为模态的窗口打开时,灰显或以其他方式禁用其他窗口的内容。这可能是一种糟糕的用户体验,尤其是如果用户将您最想要的窗口放错了位置

不要创建顶级Chrome应用程序窗口,而是在主窗口中使用lightbox样式的div,并将模式内容粘贴在其中。这是一种惯用的方式,因为大多数Chrome应用程序都是单页网站


根据您的特定用例,您可能可以通过事件侦听器和AppWindow.focus实现近似的模态。但你不会从系统中得到任何帮助,而且因为你无法阻止非模态窗口在一开始就被聚焦,这可能不会是你心目中清晰的体验。

对于扩展,惯用的设置界面是,manifest.json中的声明,在chrome://extensions.

我强烈建议使用上述方法,但对于本机应用程序来说,这是不可能的:

Chrome仍然没有为本机应用程序设置提供惯用的界面,所以就像你说的:我想知道其他人在做什么

嗯。。。一切:

插入符号使用菜单栏在编辑器选项卡中打开完全可配置的JSON文件。 Google Keep没有设置。 Writer通过一个位置奇怪的小齿轮图标打开一个单独的选项卡。 Chrome通过omnibox右侧的三栏图标打开一个单独的选项卡。 Sketchpad通过一个3条图标打开一种浮动div。 Writebox通过3栏图标打开第二个UI栏。 在没有界面指南的情况下,我会在Chrome浏览器之后对我的界面进行建模,并从一个3栏图标打开设置,希望能进入一个单独的选项卡,理想情况下可以通过yourapp://settings. 最后一点可能是不可能的

无论你走哪条路,我都没有找到用于文件菜单、Omnibar或选项卡的复制/粘贴Chrome API,如果你想要lightbox,它只是不推荐使用,而且还有很长的路要走,所以你将推出自己的解决方案


最重要的是,我建议不要开一扇单独的窗户。Chrome操作系统倾向于使用标签,没有标签的地方就有灯箱。

Chrome应用程序!=Chrome扩展。我觉得这应该是可能的,因为当我去chrome://settings 然后单击键盘设置,我会看到一个模式窗口。Chrome使用3作为其设置。闲逛chrome://settings 使用devtools-/resources/js/cr/ui/bubble.js很有趣。