我希望添加一个chrome扩展程序,以使论坛的行为有所不同:
1)不管有多少帖子,都在一页上加载主题
2)在每个帖子中添加一个删除按钮,这样我就再也看不到该帖子了
页面加载后,我抓取所有帖子(divs)并保存它们:
chrome.storage.local.get(['posts'], function(result) {
var posts = Array.from(document.querySelectorAll('div[id^="post"]'))
.map(function(d) {
var div = document.createElement("div");
div.innerHTML = d.id;
d.append(div);
return d.innerHTML;
});
posts.push(...result.posts);
chrome.storage.local.set({posts : posts}, function() {
window.location.href = nextPage;
});
保存结束后,我加载下一页,冲洗并重复。 保存所有帖子后,我将在最后一页全部恢复。
我需要每个post / div id的删除功能,但这不是innerHTML的一部分。 我可以保存externalHTML,但是由于节点没有父节点(父节点位于脚本加载的其他页面之一,而不是最后一页),因此在恢复时会产生问题。
在我的代码中,有没有比5-liner map()更好,更易读的方式来保存和恢复等于externalHTML的内容?
感谢那些讨厌阅读本文的人:)
答案 0 :(得分:0)
我没有保存数组[innerHTML,...],而是保存了一个对象{div_id:div_innerHTML,....}。
这并没有像期望的那样简化保存/恢复代码,但是由于按键查找对象很简单,因此大大简化了删除代码。