在chrome扩展中编写和检索变量

时间:2016-05-11 13:46:12

标签: javascript jquery google-chrome google-chrome-extension

我对你们所有的JavaScript,jQuery和谷歌Chrome扩展专家都有一个有趣的挑战!

我正在尝试从chrome.storage API获取值并将其分配给变量。这是场景,当我处于调试模式并逐步执行我的代码时,一切正常,但是当我不处于调试模式时,我没有得到正确的返回值。我觉得非常有趣的是,如果我在变量的赋值和if语句之间放入一个警告消息,它也可以工作。此外,如果我尝试使用while循环设置超时或终止时间,结果是相同的。

这可能是由于异步性而发生的,正如Google网站上的文档说明的那样,即使我正按照我的指示使用返回值。我也尝试了从inject.js到我的background.js的LocalStorage和SendMessage,我得到了完全相同的结果。

我曾经尝试过存储变量的其他方法,例如,将文本文件写入用户的本地计算机并访问剪贴板复制和粘贴功能。这些给我带来了安全性错误,因为注入的代码由于显而易见的原因无法访问这些功能。

所以,如果有人能告诉我如何存储字符串变量并在以后使用chrome.storage或使用任何其他方法调用它,请告诉我!

提前致谢!

这是我的代码......

//GET A PREVIOUSLY STORED IFRAME ID
var iFrameID = "";
chrome.storage.local.get('iFrame', function (result) {
    iFrameID = result.iFrame;
    //alert(result.iFrame);  <-- AN ALERT HERE WORKS
});
//alert(iFrameID);  <-- AN ALERT HERE ALSO WORKS

//CHECK TO SEE IF THE PREVIOUS IFRAME ID EXISTS
if (iFrameID == undefined) {
    iFrameID = "";
}

//UPDATE THE DOM WITH THE PREVIOUS IFRAME ID
$(".div_iFrameID").val(iFrameID);

0 个答案:

没有答案