3

我正在尝试制作一个扩展程序,该扩展名将所有选项卡崩溃在Chrome窗口中,以便它们在打开Chrome时不会加载(当标签太多时)。

但是当我尝试使用

chrome.tabs.update(null, {url:"chrome://crash"})

或者

chrome.tabs.update(null, {url:"about:crash"})

他们不工作,虽然使用

chrome.tabs.update(null, {url:"chrome://tasks"})

效果很好

有什么解决方法可以做到这一点吗?

当这也有效时,我想循环所有打开的标签来做同样的事情,我不知道怎么做。

4

1 回答 1

3

您可以简单地获取所有活动窗口并遍历其选项卡,然后将其 url 更改为 data:text/html

chrome.windows.getAll({populate : true}, function (window_list) {
    var list = [];
    for(var i=0;i<window_list.length;i++) {
        list = list.concat(window_list[i].tabs);
    }
    for(var y=0;y<list.length;y++) {
         var jsRunner = {'code': 'window.stop()'};
         chrome.tabs.executeScript(list[y].id, jsRunner);
            if(!list[y].url.match(/data\:text\/html/gi)){
                chrome.tabs.update(list[y].id, {url:"data:text/html,<meta charset=\"utf-8\"><title>" + list[y].title + "</title><h1 style='text-align:center;'><a style='text-decoration:none;' href='" + list[y].url + "'>" + list[y].url + "</a></h1>"});
            }
    }
});

您可以下载扩展并尝试http://d.pr/f/wXaZ

于 2012-08-18T21:37:27.157 回答