Chrome扩展程序:如何将所选文本发送到外部Web服务

时间:2015-09-17 19:50:50

标签: google-chrome post google-chrome-extension

可能重复的问题

在提出这个问题之前,我做了一些搜索,发现这个名字相似的问题,但我不明白它是否符合我的要求:

Chrome Extension: how to capture selected text and send to a web service

特别是Mohamed Mansour's answer看起来很有希望,但经过一个多小时的研究,试验和测试,我仍然无法理解它。所以我希望这个可能重复的问题至少会帮助其他人有同样的困惑。

问题

除了这个问题的标题之外,我还将详细介绍我想要做的事情:

  1. 在任何网站上选择文字
  2. 右键点击open the context menu of my chrome extension
  3. 将该文字发送到我网站的数据库。
  4. 但出于测试目的,我认为我会将基本的后请求发送到hurl.it等网站,以取代第三点

    那么如何将我的Chrome扩展程序中的此类请求后发送到特定的外部网站?

    我已经知道如何获取所选文字:

    的manifest.json

    {
        "manifest_version": 2,
    
        "name": "My Plugin",
        "description": "Test extension",
        "version": "0.1.20150917",
        "permissions": [
            "contextMenus"
        ],
        "background": {
            "scripts": ["script.js"]
        }
    }
    

    的script.js

    function handleSelectedText(info,tab) {
        var selectedText = info.selectionText;
        console.log("Selected text: " + selectedText;
        //This where I thought I'd send the data to my domain
    
        //And some pseudo-code to show how I thought it would work:
        /*
        chrome.extension.postRequest(selectedText, function(response) {
            if(response == success)
                displayNotification("Yay, it worked!");
            else
                displayNotification("Error: " + response.errorMessage);
        });
        */
    }
    
    
    chrome.contextMenus.create({
        title: "Mark error: '%s'", 
        contexts:["selection"],
        id: "cc-mark",
        onclick: handleSelectedText,
    });
    

    如果我将Mohamed Mansour的代码插入我的代码中,我只会收到一条错误消息,指出response未定义,所以我假设我这样做非常错误,以至于我不应该包括它。

    如果它不是很明显,我应该提一下我是Chrome扩展程序的新用户。

0 个答案:

没有答案