【问题标题】:Chrome Apps <a> tag not workingChrome 应用程序 <a> 标记不起作用
【发布时间】:2014-12-10 16:20:53
【问题描述】:

我从事 Chrome 应用程序的工作已经有几年了。我开始摆弄一些简单的例子来学习新的过程。问题是我发现使用&lt;a&gt; 标记将加载到打包应用程序内的另一个html 页面的html 页面更改将不起作用。我正在寻找通过检索用户输入(按钮单击、链接单击等)来更改屏幕的不同方法。我在网上查看过有关制作 chrome 应用程序的文档很少,大多数示例展示了如何制作简单的“Hello World”以及如何发布它。除此之外没有很多广泛的教程。只是为了澄清这个应用程序将是一个真正的 chrome 应用程序,而不是指向某个站点的链接。所有文件都将与 chrome 应用程序一起打包。

【问题讨论】:

标签: javascript html google-chrome google-chrome-app


【解决方案1】:

Chrome 应用程序应为 "single page apps",并且无法按设计导航链接。 &lt;a&gt; 链接应该在常规浏览器窗口中打开。

如果您想在应用程序中执行“url 路由”来更改视图,您可以推出自己的解决方案,但可能应该使用框架来帮助您。

这里有一些例子:

  • 聚合物
  • 角度
  • 灰烬
  • 流星
  • 骨干网

列表很广泛。可能还有许多其他堆栈溢出答案可以比较每个框架。

【讨论】:

  • 您的回答非常有帮助,但您能否添加一些以这种方式使用的框架的好例子。最终答案应该有很好的可行解决方案示例,以便搜索该站点的其他人无需提出更多问题即可获得任务所需的信息。
  • 感谢您的回答,我查看了 Angular,现在看看如何去做。但我认为,如果您可以将一些好的教程链接到您的答案,那将会很有帮助。
【解决方案2】:

代表 Chrome 应用程序窗口内容的 DOM(文档对象模型)是从 HTML 文件启动的,但从那时起,您无法通过引用任何其他文件来更改它,这正是您所期望的导航要做。 (&lt;a&gt; 元素通过“target=_blank”属性导航到外部浏览器完全可以。)

但是,您可以在运行时通过 JavaScript 随意更改 DOM。如果您愿意,可以在 &lt;a&gt; 元素上设置一个事件处理程序,并根据需要更改 DOM。如果您想通过 HTML(而不是从文件)更改 DOM,您可能会发现 JavaScript 方法 insertAdjacentHTML 很有用。实际上,您可以从文件中获取 HTML,但您必须自己使用 Chrome App 文件 I/O API 读取该文件。

在我看来,使用框架的另一个答案的建议是矫枉过正。如果您想到 Windows 应用程序、Mac 应用程序或任何其他类型的基于 GUI 的应用程序,您永远不会认为您可以通过引用 HTML 文件将 UI 更改为完全不同的东西。从这个意义上说,Chrome 应用程序与这些技术相似,您就会走上正轨。

【讨论】:

  • 如果我想制作一个网格菜单并从选择其中一个项目中将我带到另一个界面。除了一些桌面应用程序之外,并非所有应用程序都会根据用户输入更改界面。由于互联网上缺乏以不同方式更改界面的示例,如果最终答案代表一个关于用户如何使用多种好的方法来进行界面更改和修改的良好教程,那将是有帮助的。这样其他人就可以使用这篇文章中提供的信息。
  • 提供“关于用户如何使用多种好方法来接口更改和修改的好教程”对于 SO 答案的期望有点过高。我认为让你走上正确的轨道就足够了。抱歉,我无法满足您的要求。
  • 别担心,我只是为那些看到页面的人考虑,它可以帮助他们。我能够根据这两个答案找到很多好的教程,现在能够完成任务。
猜你喜欢
  • 2017-05-19
  • 2014-03-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-30
  • 2013-07-07
  • 2018-04-10
  • 1970-01-01
相关资源
最近更新 更多