当我点击它所说的应用程序内的任何本地 url 时,我收到一个红色错误。
Can't open same-window link to "chrome-extension://nmajpganl/options.html"; try target="_blank". index.html:1
有没有办法在本地链接权限?还是我必须重写所有内容才能在一页上?
我认为这与 Chrome Manifest Sandbox .. 需要包含您将链接到的所有页面有关?谁能证实这一点?
当我点击它所说的应用程序内的任何本地 url 时,我收到一个红色错误。
Can't open same-window link to "chrome-extension://nmajpganl/options.html"; try target="_blank". index.html:1
有没有办法在本地链接权限?还是我必须重写所有内容才能在一页上?
我认为这与 Chrome Manifest Sandbox .. 需要包含您将链接到的所有页面有关?谁能证实这一点?
打包的应用程序不是网站。应用程序和网站之间的主要区别是没有导航。你有几个选择:
以与主窗口相同的方式为您的选项创建一个窗口。
正如您所说,重写应用程序以操作主窗口的 DOM,而不是“用新位置的 DOM 替换 DOM”(一种说导航的奇特方式)。
使用 <webview>。这不太可能是您想要的(假设选项意味着类似首选项页面)。但你可以做到。
正如错误消息所说,使用 target=_blank 并找出一种方法让普通的 Chrome 选项卡打开它(例如,将其托管在网站上)。对于您的应用程序,这种方法将是疯狂的。
正确的答案在这里,但它似乎已被驳回,所以让我扩展它。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>
可能不需要这些元标记,但我在任何地方都使用它们。
这似乎解决了多 html 页面本地应用程序中的导航问题。
新的 Chrome 打包应用程序不支持导航。您可以创建新窗口或替换正文中的内容或使用应用程序的 webview 标签。
你可以<iframe>
在你的main.html
.