localStorage密钥未被创建

时间:2014-03-06 20:12:56

标签: javascript google-chrome-extension local-storage

我正在尝试在当前页面和外部页面上存储密钥。在下面的示例中,我使用谷歌。 urlx都在之前的函数中定义。

window.localStorage.setItem(url, x);
var url2 = "http://google.com/";
document.location = url2;
storeToDB(url, x);


function storeToDB(url, x) {
    setTimeout(function() { console.log("Waiting..."); }, 1000); 
    window.localStorage.setItem(url, x);
    document.location = url;
    console.log("Value Stored");
}

调用该方法,但不存储密钥。 该页面看起来好像正在刷新,所以我知道它正在通过该行。

此代码在chrome-extension上的内容脚本上运行。

2 个答案:

答案 0 :(得分:1)

在脚本终止之前,设置location.href不会生效。因此,如果您多次设置,则只会导航到您设置的最后一个值。

更重要的是,一旦浏览器离开页面,在该页面上运行的任何脚本都将无法继续运行。如果您可以将浏览器导航到另一个页面并在那里执行任意代码,那将是一个巨大的安全漏洞。

答案 1 :(得分:0)

根据内容脚本的文档,您不能从那里使用localStorage。您只能使用chrome.storage或从后台页面使用localStorage(通过从内容脚本向其发送消息)