0

クリックするとページ上の jQuery 要素を非表示にするクロム拡張機能を作成しています。

この要素への参照を chrome.storage API に保存する必要があるため、後でページが読み込まれたときに、その要素を再び非表示にすることができます。

ページの読み込み時に DOM ツリーが再構築されることは知っていますが、これが何かに影響するかどうかはわかりません。要素はページ上の何でもかまいませんので、必ずしもクラス/ID 名を持つ必要はありません。

参照を保存するための最良の方法は何ですか? これを行う方法についてのアイデアはすべてありません(JavaScriptの真新しい)。

アップデート

Xan が提案したように、要素への参照を格納するために xPath を使用しています。

//要素を取得

var elem = e.target || e.srcElement;
$(elem).click(function () {
            xPathOfElem = getElementXPath(elem); //Get xPath of element
            updateStorage(xPathOfElem);
            $(elem).hide("");
            return false;
        });

//保存する

function updateStorage(xPathOfElem) {
    chrome.storage.sync.set({"element":xPathOfElem} //set xPath to storage
        , function (data) {});
};

//後でロード時に取得します

function getStorage() {
     chrome.storage.sync.get(null, function (data) {
         $(getElementsByXPath(document, data.element)).hide(""); //get and hide element
     });
}

window.onload = function () {
     getStorage();
 };

Xanが述べたように、ページが静的でない場合は完璧なアプローチではありませんが、必要なことは実行します

4

1 に答える 1