【发布时间】:2014-06-10 23:17:40
【问题描述】:
我正在创建一个 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 提到的,如果页面不是静态的,但它可以满足我的需要,这不是一个完美的方法
【问题讨论】:
标签: javascript jquery dom google-chrome-extension google-chrome-storage