Google chrome extension 像球状的。下载数据中的部分以字符串“_GM_setData({“w43KIf”):[“sdpc.”开头。也许这个JSON可以用来完全替代全局变量。下面是我为此目的实现的JS代码片段——如果你正在解决类似的问题,你可以从中得到启发(代码需要JQuery和sp

Google chrome extension 像球状的。下载数据中的部分以字符串“_GM_setData({“w43KIf”):[“sdpc.”开头。也许这个JSON可以用来完全替代全局变量。下面是我为此目的实现的JS代码片段——如果你正在解决类似的问题,你可以从中得到启发(代码需要JQuery和sp,google-chrome-extension,gmail,gmail-api,gmail-addons,Google Chrome Extension,Gmail,Gmail Api,Gmail Addons,像球状的。下载数据中的部分以字符串“_GM_setData({“w43KIf”):[“sdpc.”开头。也许这个JSON可以用来完全替代全局变量。下面是我为此目的实现的JS代码片段——如果你正在解决类似的问题,你可以从中得到启发(代码需要JQuery和sprintf的任何实现): console.log( “正在下载Gmail配置以检查签名和签名切换。”); $.ajax(sprintf( "https://mail.google.com/mail/ca/u/0/?ui=2&ik=%s&view

像球状的。下载数据中的部分以字符串“_GM_setData({“w43KIf”):[“sdpc.”开头。也许这个JSON可以用来完全替代全局变量。下面是我为此目的实现的JS代码片段——如果你正在解决类似的问题,你可以从中得到启发(代码需要JQuery和sprintf的任何实现):

console.log(
“正在下载Gmail配置以检查签名和签名切换。”);
$.ajax(sprintf(
"https://mail.google.com/mail/ca/u/0/?ui=2&ik=%s&view=cm&fs=1&tf=1",
Gmail配置(ike){
“类型”:“获取”,
“接受”:“html”,
“错误”:功能(响应、,
状态文本1,
jqXHR1)
{
log(“获取配置数据时出错(签名将不可用)):“+statusText1);
发送响应(假);
},
“成功”:功能(响应、,
状态文本1,
jqXHR1)
{
//console.log(“获得的数据:+响应”);
var dom=$(响应);
dom.filter('script')。每个(函数()
{
var myscript=this.text | | this.textContent | | this.innerHTML | |“”;
//log(“脚本:+myscript”);
if(myscript.indexOf('[“bx_-se”')!=-1){
console.log(“bx_se found.”);
//log(myscript);
var startToken='_GM_setData({';
var endToken='“});';
var subscript=myscript.substring(myscript.indexOf(startToken)+startToken.length-2);
//log(“下标:+下标”);
var finalJSONString=subscript.substring(0,
下标indexOf(endToken)+2);
//log(“finalJSONString:+finalJSONString”);
var finalJSON=JSON.parse(finalJSONString);
//log(finalJSON);
//这将在JSON对象中定位有趣的信息
var configArr=finalJSON.sBEv4c[2][1];
//console.log(configArr);
对于(var k=0;k
console.log(
        "Going to download Gmail config to check for signature and signature switch.");
$.ajax(sprintf(
        "https://mail.google.com/mail/ca/u/0/?ui=2&ik=%s&view=cm&fs=1&tf=1",
        gmailConfig_ike), {
    "type": "GET",
    "accept": "html",
    "error": function (response,
                       statusText1,
                       jqXHR1)
    {
        console.log("error getting config data (signature will be unavailable)):" + statusText1);
        sendResponse(false);
    },
    "success": function (response,
                         statusText1,
                         jqXHR1)
    {
        // console.log("Data obtained: " + response);

        var dom = $(response);

        dom.filter('script').each(function ()
        {
            var myscript = this.text || this.textContent || this.innerHTML || '';
            // console.log("script:  " + myscript);
            if (myscript.indexOf('["bx_se"') !== -1) {
                console.log("bx_se found.");

                //console.log(myscript);
                var startToken = '_GM_setData({"';
                var endToken = '"}); ';
                var subscript = myscript.substring(myscript.indexOf(startToken) + startToken.length - 2);
                // console.log("subscript: " + subscript);
                var finalJSONString = subscript.substring(0,
                        subscript.indexOf(endToken) + 2);
                // console.log("finalJSONString: " + finalJSONString);
                var finalJSON = JSON.parse(finalJSONString);
                //console.log(finalJSON);

                // this locates the interesting information in the JSON object
                var configArr = finalJSON.sBEv4c[2][1];
                // console.log(configArr);

                for (var k = 0; k < configArr.length; k++) {
                    var param = configArr[k];
                    if (param && param[0].indexOf("sx_mrsp_") == 0) {
                        console.log("Signature located: " + param[1]);
                        gmailConfig_signature = param[1];
                    }
                    if (param && param[0].indexOf("bx_se") == 0) {
                        console.log("Signature switch located: " + param[1]);
                        gmailConfig_signSwitch = param[1];
                    }
                    // if (param && param[0].indexOf("sx_dl") == 0) {
                    //     console.log("Language located: " + param[1]);
                    //     // gm_lang = param[1];
                    // }
                }

            }
        });

        sendResponse(true);
    }
});