调用在函数内声明的变量

时间:2015-04-03 23:02:21

标签: javascript function variables google-chrome-extension

我在chrome扩展程序中使用了消息传递来将数据从background.js移动到content.js文件。

在下面的函数中,当我将变量输出到函数中的控制台时,我得到了我期望的数据。当我在函数外部尝试相同时,我得到null(在全局变量中定义)。

有没有人知道如何从函数中提取数据,以便我可以通过AJAX调用发布它。

代码

var capturedData = "url=" + window.location.href;
var localHash = "localhash=" + CryptoJS.MD5(capturedData);
var email = null;

chrome.extension.sendMessage({greeting: "hello"}, function(response) {
    email = response;
    console.log(JSON.stringify(email));
    return true;
});
console.log(JSON.stringify(email));


$.ajax({
    type: 'post',
    url: 'url',
    data: {"url":capturedData, "localhash":localHash},
    dataType: 'json',
    success : function (data) {
        if(data.url)
        {
            console.log(data.url);
        }  
    }
});

输出

  

null content.js:10 {“email”:“email@email.com”} content.js:7

谢谢!

1 个答案:

答案 0 :(得分:1)

您需要在电子邮件中获得一些价值后进行ajax通话:

var capturedData = "url=" + window.location.href;
var localHash = "localhash=" + CryptoJS.MD5(capturedData);
var email = null;

chrome.extension.sendMessage({greeting: "hello"}, function(response) {
    email = response;
    console.log(JSON.stringify(email));


$.ajax({
    type: 'post',
    url: 'url',
    data: {"url":capturedData, "localhash":localHash},
    dataType: 'json',
    success : function (data) {
       if(data.url)
       {
        console.log(data.url);
       }  
    }
 });

return true;
});

 console.log(JSON.stringify(email));