我正在编写一个简单的chrome扩展程序。我需要创建将站点URL添加到列表或从列表中读取的功能。
我使用该列表在新标签中打开网站。
我正在寻找一种方法来获取我可以写入的数据文件,并从中读取。我正在考虑使用XML。我读到使用Javascript更改文件内容时出现问题。
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>
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");
}
答案 0 :(得分:4)
我建议使用“chrome.storage.local”解决此问题。首先参考Google Guide然后关于您的代码。只做两件事:
1)按照这样的顺序存储它们
key: site1 - value: www.example1.com
key: site2 - value: www.example2.com
key: site3 - value: www.example3.com
2)在retreiving时,你应该从“site1”开始迭代,直到不再有:)
答案 1 :(得分:1)
chrome.storage
Chrome 20 + 或localStorage
。localStorage
时,需要序列化数据。 JSON比XML更适合。document.write
,因为他将删除文档的先前内容。