Chrome Apps将一个页面打开到另一个页面

时间:2014-06-02 11:07:02

标签: javascript html5 google-chrome google-chrome-app chrome-app-developer-tool

我正在为HTML5中的Chrome应用开发应用

我的问题是:我必须点击链接打开另一页

锚标记(<a href="page1.html" target="_blank">)也无法正常工作

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>Hello World</title>
    <link href="styles/main.css" rel="stylesheet">
</head>
<body>
    <h1>Hello, World!</h1>
    <a href="page1.html" target="_blank">Click Me</a>
</body>
</html>

background.js:

chrome.app.runtime.onLaunched.addListener(function() {

  var screenWidth = screen.availWidth;
  var screenHeight = screen.availHeight;
  var width = 500;
  var height = 300;

  chrome.app.window.create('index.html', {
    id: "helloWorldID",
    bounds: {
      width: width,
      height: height,
      left: Math.round((screenWidth-width)/2),
      top: Math.round((screenHeight-height)/2)
    },
  });
});

如何使用应用程序窗口中的链接打开page1.html

1 个答案:

答案 0 :(得分:1)

有几种方法可以在Chrome应用中创建新窗口。首先只是window.open,这是您为普通网页内容所做的事情(即您在普通浏览器标签中打开的内容)。这非常类似于使用注册的任何应用程序来打开浏览器窗口的本机应用程序来处理.html文件扩展名,也就是说它将在用户的默认浏览器中打开Web内容。

接下来是您用来创建应用初始窗口的chrome.app.window.create。因此,在要启动新窗口打开的链接或按钮上设置一个侦听器,并将create()调用放在那里。这是您在案例中所需要的,因为您不是要显示常规的Web内容,而是显示嵌入在您的应用中的HTML。

最后,如果您想要window.open行为,但需要知道它将在与应用相同的个人资料中在Chrome中打开,请参阅chrome.browser.openTab,您可以在https://code.google.com/p/chromium/issues/detail?id=358315关注其进度。 (更新:我刚刚与rpaquay谈过,他说这个API在开发频道中有效。)

为了完整起见,我还应该在Chrome应用窗口中提及正常的网页内容,您需要&lt; webview&gt;,或者在&lt; webview&gt;中打包/嵌入资源,这需要webview:partitions:accessible_resources(请参阅codereview.chromium.org/308903002了解详情)。我认为最后一部分尚未生效,因此名称可能会改变。