当我点击应用内的任何本地网址时,我收到了红色错误。
Can't open same-window link to "chrome-extension://nmajpganl/options.html"; try target="_blank". index.html:1
有没有办法在本地链接权限?或者我是否必须将所有内容重写为一页?
我认为这与Chrome Manifest Sandbox相关..需要包含您要链接的所有页面?谁能证实这一点?
答案 0 :(得分:3)
打包应用不是网站。应用程序和网站之间的主要区别是没有导航。您有几个选择:
为您的选项创建一个窗口,方法与主窗口相同。
正如您所说,重写应用程序以操纵主窗口的DOM,而不是“将DOM替换为新位置的DOM”(一种奇特的导航方式)。
使用< webview>。这是你不想要的(假设选项意味着类似于prefs页面)。但你可以做到。
正如错误消息所示,使用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
。