4

DOM ノードを保存して、同じ Web サイトの別のページに挿入しようとしています。

拡張機能で jQuery を使用しています。私が content_script.js で行ったことは次のとおりです。

var variableToStore = localStorage["variableToStore"];

if (variableToStore == null) {
    localStorage["variableToStore"] = jQuery("#myDomNode").clone();
    variableToStore = localStorage["variableToStore"];
}

variableToStore.insertAfter(jQuery("#someelementofanotherpage"));

私が間違っていることは何ですか?localStorage は DOM オブジェクトを保存できませんか? そうでない場合、どうすれば目的を達成できますか?

ありがとう。

4

3 に答える 3

3

簡単に言えば、DOM 要素をローカル ストレージに格納することはできません。jStorage プラグインを使用しても、イントロ テキストに記載されているように、ローカル ストレージに DOM 要素を格納することはできません: http://www.jstorage.info/

JavaScript 用に HTML エンコードされた文字列をローカル ストレージに保存し、後でそれを html に戻すことができます (その領域のヘルプについては、この Q&Aを参照してください)。

于 2012-06-12T15:25:25.837 に答える
1

代わりに、htmlコードを使用して文字列を保存できます。これを試してください。

var div=$('<div></div>');
$("#myDomNode").clone().appendTo(div);
localStorage["variableToStore"] = escape(div.html());
...
var variableToStore = unescape(localStorage["variableToStore"]);
$(variableToStore).appendTo($("#someelementofanotherpage"));
于 2012-06-12T15:36:07.003 に答える
1

フランソワのソリューションは機能しますが、clone() は JQuery の変更を反映していないため、以前にこれを実行する必要がありました。

$("input").each(function(){
    $(this).attr("value", $(this).val());
});

jStorageでフォームの状態を保存するために全体的に使用します。

(コメントするほどの評判はありません、ごめんなさい)

于 2014-06-10T04:56:15.770 に答える