Chrome应用<a> tag not working</a>

时间:2014-12-10 16:20:53

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

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

2 个答案:

答案 0 :(得分:5)

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

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

以下是一些例子:

  • 聚合物
  • 灰烬
  • 流星
  • 骨干

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

答案 1 :(得分:3)

表示Chrome应用程序窗口内容的DOM(文档对象模型)是从HTML文件启动的,但从那时起,您无法通过引用任何其他文件来更改它,这就是您所需要的#&# 39;重新期待导航。 (<a>元素通过&#34; target = _blank&#34;属性导航到外部浏览器是完全正常的。)

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

在我看来,使用框架的另一个答案的建议是矫枉过正。如果您想到Windows应用程序,Mac应用程序或任何其他类型的基于GUI的应用程序,您绝不会假设您只需通过引用HTML文件将UI更改为完全不同的内容。将Chrome应用程序视为与这种技术类似,并且您将走上正确的轨道。