我正在创建一个 chrome 扩展,当点击时它会在页面上隐藏一个 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 提到的,如果页面不是静态的,但它可以满足我的需要,这不是一个完美的方法