1

私は単純なクロム拡張機能を書いています。サイトの URL をリストに追加したり、リストから読み取ったりする機能を作成する必要があります。

リストを使用して、新しいタブでサイトを開きます。

読み書きできるデータ ファイルを作成する方法を探しています。私はXMLについて考えていました。Javascript でファイルの内容を変更する際に問題があることを知りました。

XML は、この種の適切な選択でしょうか?

Web サーバーはなく、アプリはローカルで実行されることを付け加えておきます。そのため、Web サイトで発生している問題はこれと同じではない可能性があります。

この質問を書く前に、あることを試してみましたが、うまくいかず不安になり始めました。

  • 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」を使用して、この問題を回避することをお勧めします。最初にGoogleガイドを参照してから、コードについて確認してください。次の 2 つのことだけを行います。

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 に答える