Chrome打包应用程序本地root html链接通过Sandbox Manifest 2

时间:2013-04-17 01:09:38

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

当我点击应用内的任何本地网址时,我收到了红色错误。

Can't open same-window link to "chrome-extension://nmajpganl/options.html"; try target="_blank". index.html:1

有没有办法在本地链接权限?或者我是否必须将所有内容重写为一页?

我认为这与Chrome Manifest Sandbox相关..需要包含您要链接的所有页面?谁能证实这一点?

4 个答案:

答案 0 :(得分:3)

打包应用不是网站。应用程序和网站之间的主要区别是没有导航。您有几个选择:

  1. 为您的选项创建一个窗口,方法与主窗口相同。

  2. 正如您所说,重写应用程序以操纵主窗口的DOM,而不是“将DOM替换为新位置的DOM”(一种奇特的导航方式)。

  3. 使用< webview>。这是你不想要的(假设选项意味着类似于prefs页面)。但你可以做到。

  4. 正如错误消息所示,使用target = _blank并找出普通Chrome标签打开它的方法(例如,在网站上托管它)。对于您的应用,这种方法将是精神错乱。

答案 1 :(得分:1)

正确的答案在这里,但它似乎已经被驳回,所以让我扩展它。 iframe不允许访问其他网站,但你可以使用一个包装所有本地东西。像这样:

<!DOCTYPE HTML>
<html>
  <head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8" />
    <meta name="viewport" content="target-densitydpi=device-dpi, width=device-width, user-scalable=no, maximum-scale=1, minimum-scale=1" />
    <style>
html, body, iframe {
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  margin: 0;
  border: none;
  overflow: hidden;
}
    </style>
  </head>
  <body><iframe src="index.html"></iframe></body>
</html>

可能不需要那些meta标签,但我到处都使用它们。

这似乎解决了多个html页面本地应用程序中的导航问题。

答案 2 :(得分:0)

新的Chrome打包应用程序不支持导航。您可以创建新窗口或替换正文中的内容,也可以使用应用程序的webview标记。

答案 3 :(得分:0)

您可以在<iframe>内使用main.html