【问题标题】:Writing Google chrome extension for GET query为 GET 查询编写 Google chrome 扩展
【发布时间】:2010-03-13 22:07:59
【问题描述】:

我正在尝试编写一个 Google chrome 扩展程序,以便我可以突出显示任何网站上出现的文本,并在另一个网站上执行 GET 查询搜索。它将在新选项卡中打开查询。

例如,如果我突出显示文本“google chrome”并右键单击以激活 chrome 扩展程序,它将在新选项卡中打开 http://example.com/index.php?q=google%20chrome

最好的方法是什么?

【问题讨论】:

    标签: google-chrome


    【解决方案1】:

    要从您访问的标签中获取选定的文本,您需要使用Extension Messaging 来执行此操作。

    例如,让我们做一个简单的谷歌搜索扩展,在你的内容脚本中你会有这样的东西:

    chrome.extension.onRequest.addListener(function(request, sender, sendResponse) {
        if (request.method == "getSelection")
          sendResponse({data: window.getSelection().toString()});
        else
          sendResponse({}); // snub them.
    });
    

    现在假设您希望在您单击browser action 时发生这种情况,在您的background page 中,您需要监听 onclick 事件。

    chrome.browserAction.onClicked.addListener(function(tab) {
      chrome.tabs.sendRequest(tab.id, {method: "getSelection"}, function(response) {
        var selectedText = response.data;
        chrome.tabs.create({url: 'http://google.com?q=' + selectedText});
      });
    });
    

    您会注意到,一旦您单击该图标(浏览器操作),它就会向内容脚本发送一个请求,一旦内容脚本接收到该操作,它会将选定的文本作为其有效负载发送回。然后,您可以根据选择打开一个选项卡以向 Google 搜索结果。

    【讨论】:

      【解决方案2】:

      如果您只是想打开一个新标签,您可以使用带有 URL 参数的chrome.tabs.create()。要获取选定的文本,请捕获mouseup 事件并使用window.getSelection() 获取选定内容。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-03-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多