0

是否可以使用 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
4

1 回答 1

2

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

但是,应该起作用的是:

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

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

于 2013-09-04T23:35:00.350 回答