我对你们所有的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);