我在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
谢谢!
答案 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));