在Firefox中不推荐使用element.setUserData之前,我使用它来存储一些数据并将其附加到一个元素。但现在来自doc:
https://developer.mozilla.org/en-US/docs/Web/API/Node.setUserData
我们可以看到不推荐使用此API,而首选Element.dataset
我使用element.setUserData来存储对象或数组,但element.dataset只能存储字符串。
那么商店对象是否还有其他替代品并将其附加到元素上?
答案 0 :(得分:0)
这很容易..将你的数组序列化为一个字符串然后把它转换成一个数组....
var aUserData = new Array(“This”,“Is”,“Easy”);
var sUserData = aUserData.toString(“|”); //序列化数组
var aBackFromString = sUserData.split(“|”); //将字符串转换回数组
答案 1 :(得分:0)
参考:How can I transfer data to firefox extension from web page
使用CustomEvent,它可以在.detail成员中携带自定义数据 来自网络:
var event = new CustomEvent("custom-event-id", {
"bubbles": true,
"detail": {
"some": "data",
"number": 1
}
});
elem.dispatchEvent(event);
来自扩展程序:
someWindowOrElement.addEventListener("custom-event-id", function(e) {
console.log("got event for ", e.originalTarget, "with data", e.detail);
});