Chrome 应用 <a> 标记不起作用

Chrome Apps <a> tag not working

本文关键字:不起作用 Chrome 应用      更新时间:2023-09-26

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

Chrome 应用旨在成为"单页应用",无法通过设计导航链接。 <a>链接应在常规浏览器窗口中打开。

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

以下是一些示例:

  • 聚合体
  • 余烬
  • 流星
  • 骨干

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

表示Chrome App窗口内容的DOM(文档对象模型(是从HTML文件启动的,但从那时起,您无法通过引用任何其他文件来更改它,这是您希望导航执行的操作。 (<a>通过"target=_blank"属性导航到外部浏览器的元素完全没问题。

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

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