1

我正在开发我的第一个 Chrome 扩展程序。我想将 CSV 文件存储为 JSON,读取内容并将其与 URL 进行比较。

问题:

  1. 我通常会将 CSV 表存储在数据库中,但我没有使用 JavaScript 的选项。在我的情况下,您认为有更好的选择吗?
  2. 我有一个main.js(内容脚本)和一个script.js。内容脚本调用第二个来读取用户的 URL(似乎内容脚本不能自己做)。之后,我需要阅读 JSON 文件。在script.js我有

    load: function() {
        var list;
        var xhr = new XMLHttpRequest();
        xhr.onreadystatechange = function() {
            list = JSON.parse(xhr.responseText);
        }
        xhr.open("GET", chrome.extension.getURL('resources/list.json'), true);
        xhr.send();
        return list;
    }
    

但它抛出"Cannot call method 'getURL' of undefined"。我试图将这个load()函数插入main.js,存储list使用localStorage,然后最后在里面读取它script.js,但是......什么都没有......信息没有被存储。我做错了什么?

4

1 回答 1

1

这是Content Scripts 的广告限制。您的内容脚本位于 DOM 页面的沙箱中。尽管由您的扩展程序注入,但它几乎没有与它共享任何内容。

如果您需要单个异步请求/响应或使用chrome.runtime.connect重复使用,我建议您使用chrome.runtime.sendMessage 。

它可以帮助您在自己的应用程序中依赖事件,帮助您解耦代码。

于 2013-04-30T16:32:11.793 回答