2014-06-16 38 views
0

我试图找到一个单击解决方案,以在Google Chrome的相同窗口中的不同选项卡中打开多个网站。我知道我可以将所有网站放在书签文件夹和right click > open all(或中间点击书签文件夹),但这不符合我的需要。Google chrome应用程序启动多个选项卡不可预知地崩溃

据我所知是没有办法启动多个选项卡开始使用谷歌浏览器的JavaScript回调一个非用户。如果是这种情况,则Chrome会在弹出窗口的单独窗口中启动每个网站(请参阅here)。

不过,我设法完成使用谷歌Chrome应用这项任务:

manifest.json的

{ 
    "name": "Open multiple tabs", 
    "version": "1.0", 
    "description": "Opens multiple tabs in the same window.", 
    "manifest_version": 2, 
    "app": { 
    "background": { 
     "scripts": ["background.js"] 
    } 
    } 
} 

background.js

chrome.app.runtime.onLaunched.addListener(function() { 
    window.open("http://plus.google.com"); 
    window.open("http://www.twitter.com"); 
    window.open("http://news.google.com/"); 
    window.open("http://bestofyoutube.com"); 
    window.open("http://www.sci2.tv/#!/browse"); 
}); 

最有可能是我的代码有问题,因为超过一半的时间,加载标签后它崩溃,显示“Aw shap!显示此网页时出现问题。要继续,请重新加载或转到另一个页面”错误消息。

而且和Google+(plus.google.com)总是显示消息‘您已登出Google+的’(如果该选项卡不第一崩溃),即使重装后不会消失。

如果我包的应用程序安装与否之前不要紧。

任何帮助,将不胜感激。

作为奖励,有人可以请解释为什么要更换

window.open(url); 

chrome.tabs.create(url); 

结果在App即使什么也不做?

感谢, 尼科斯

OSX小牛,Chrome的版本35.0.1916.153

回答

1

我认为你的问题是试图建立Chrome App,当你想要的功能更适合的Extension。两个之间的比较见here

举个例子,这里的应用出了什么问题?

  1. chrome.tabs API是unavailable for Apps。这是因为应用程序不应该:

    1. 与浏览器UI交互,即打开它的标签;
    2. 有自己内部的标签 - 他们应该看起来像“原生”的应用,而不是迷你浏览器
  2. Google+上签字了:这是因为应用程序不能访问到浏览器的自己的cookie。他们有自己的cookie存储,并需要采取额外的步骤来坚持这些。

所以,你真正想要的是一个Browser Action扩展名。它会给你一个很好的按钮,你可以使用chrome.windowschrome.tabs来做你想做的。

+0

谢谢你的答案,这是非常有益的!我想我很愚蠢我没有在我的问题中指出_为什么我首先需要这个功能,以防有人想到一个解决方法来提出,以及为什么扩展最可能不符合我的需要:我正在使用[ ANTP](http://bit.ly/U6xq1r)扩展,它允许放置a)链接(以http://等有效协议开始),b)应用和c)ANTP小部件网格在新标签页中。我想要其中一个瓷砖启动多个网站。有没有办法从JavaScript发起扩展? – nikos

+0

@Nicholas在这种情况下,您需要创建一个ANTP _widget_,它是一个扩展,用于响应来自ANTP的外部消息。我找不到任何文档,但有一些例子,例如[here](https://github.com/NewTabPage)。 – Xan

+0

我想避免这种情况,并有更通用的东西,但是我猜这就是要走的路!谢谢! – nikos