0

我有一个扩展名,我暂时称之为“多标签”,用于在多个标签中打开一组给定的 URL。对于我个人的用途,即为我正在跟踪的股票打开几个股票图表,我只是硬编码了 URL。但在我看来,其他人可能会觉得这是有用的东西,而我在现有的扩展中找不到它。但为了使其对其他人有用,我需要有某种界面来编辑您要打开的 URL。这是我到目前为止所拥有的 Github:https ://github.com/aisthesis/multi-tab

到目前为止,行为是:您单击扩展程序的图标,它只会打开选项卡。我想尽可能简单。我还尝试使用带有“Ctrl+Shift+E”之类的热键的“commands”API 来打开某种编辑器界面(我认为 Stack Exchange 问题监视器扩展是一个很好的模型),但我不能无法使其正常工作,可能是因为我没有要绑定的组合键的背景弹出窗口。我还尝试使用多功能框,在您输入“多选项卡编辑”或类似内容后会出现编辑菜单。虽然我可以让多功能框版本工作,但它似乎不是很用户友好。我认为理想的做法是按住 Ctrl 键单击扩展部分中的图标打开一个对话框以编辑您的 URL,但我 我没有看到 API 将如何支持它。如果你能给我任何关于如何做到这一点的指示,请回复!

另一种选择是在您单击图标时打开一个弹出窗口,然后您可以选择是要打开当前设置的 URL 还是编辑这些 URL。我不喜欢这样,因为它在仅打开选项卡的基本用例中创建了一个额外的步骤。

有没有人知道如何以用户友好的方式实现“编辑”界面并离开它,以便只需单击图标即可打开各种选项卡?或者当您控制点击图标时是否可以简单地打开一个编辑器?

4

1 回答 1

1

您可以简单地设置一个选项页面,其中包含一堆 HTML 输入元素,您的用户可以在其中输入他们想要打开的 URL:

<input type="text" name="url1" value="" />
<input type="text" name="url2" value="" />
<input id="save" type="button" value="Save" />

然后将所有这些 URL 保存到本地存储:

$('#save').click(function()
{
    var urls = [];
    $( "input[type=text]" ).each(function( index ) 
    {
        urls.push($(this).val());
    });
    var items = { "urls": urls };
    chrome.storage.local.set(items, function() {});
});

最后,点击浏览器操作即可获得所有这些 URL:

chrome.browserAction.onClicked.addListener(function(tab)
{
    chrome.storage.local.get("urls", function(items)
    {
        var urls = items.urls;
        for (var i = 0; i < urls.length; i++)
        {
            chrome.tabs.create({ url: urls[i]});
        }
    });
});
于 2013-10-13T13:44:27.533 回答