使用 document.links 将当前页面上的 URL 保存在插件 sdk 中

Save URLs on current page in addon sdk with document.links

本文关键字:保存 URL 存在 插件 sdk links document 当前页 使用      更新时间:2023-09-26

是否可以使用 Mozilla 插件 SDK 将当前页面上的所有 URL 保存到变量中?

contentScript: 'self.on("click", function () {' +
    'var data=new Object();' +
    'data.selectedText = window.getSelection().toString();' +
    'data.links = document.links;' +
    '  self.postMessage(data);' +
    '});',
onMessage: function (data) {
    console.log(data.selectedText);
    console.log(data.links.length);
}

输出

info: addon: hello
info: addon: undefined
data.links = document.links不起作用

,因为document.links返回 DOM 锚元素的节点集合,该集合不能序列化为 JSON(因为消息需要)。

但是,应该有效的是:

data.links = Array.map(document.links, function(l) l.href);

这会将集合映射到包含链接目标 URI 作为字符串的新数组,并且可以序列化字符串。