1

我正在写一个简单的 chrome 扩展。我需要创建将站点 URL 添加到列表或从列表中读取的功能。

我使用列表在新选项卡中打开站点。

我正在寻找一种方法来获得可以写入和读取的数据文件。我在考虑 XML。我读到使用 Javascript 更改文件内容时出现问题。

XML 是这种事情的正确选择吗?

我应该补充一点,没有网络服务器,应用程序将在本地运行,所以可能网站遇到的问题与此不同。

在我写这个问题之前,我尝试了一件事,并开始感到不安全,因为它不起作用。

  • 我制作了一个名为 Site.xml 的 XML 文件:

<?xml version="1.0" encoding="utf-8" ?>

    <Sites>
  <site>
    <url>
      http://www.sulamacademy.com/AddMsgForum.asp?FType=273171&SBLang=0&WSUAccess=0&LocSBID=20375
    </url>
  </site>

  <site>
    <url>
      http://www.wow.co.il
    </url>
  </site>

  <site>
    <url>
      http://www.Google.co.il
    </url>
  </site>

  • 我制作了这个脚本来读取他的数据,并将其放入 html 文件中。

 function LoadXML() {
            var ajaxObj = new XMLHttpRequest();
            ajaxObj.open('GET', 'Sites.xml', false);
            ajaxObj.send();

        var myXML = ajaxObj.responseXML;
        document.write('<table border="2">');
        var prs = myXML.getElementsByTagName("site");
        for (i = 0; i < prs.length; i++) {
            document.write("<tr><td>");
            document.write(prs[i].getElementsByName("url")[0].childNode[0].nodeValue);
            document.write("</td></tr>");
        }
        document.write("</table");
    }
4

2 回答 2

4

我建议使用“chrome.storage.local”解决这个问题。首先参考谷歌指南然后关于你的代码。只做两件事:

1)像这样按顺序存储它们

key: site1 - value: www.example1.com
key: site2 - value: www.example2.com
key: site3 - value: www.example3.com

2)检索时,您应该从“site1”开始迭代,直到不再有:)

于 2013-05-04T11:30:20.067 回答
1
  1. Chrome 扩展程序无法写入真实文件系统上的文件(虚拟 HTML5 文件系统可能对您来说太复杂)。
  2. 对于本地应用程序,维护持久设置的最佳方式是使用Chrome 20+或.chrome.storage localStorage
  3. 使用时localStorage,需要对数据进行序列化。JSON比 XML 更适合。
  4. 页面加载后切勿使用document.write,因为文档的先前内容将被擦除。
于 2012-10-06T15:19:08.233 回答