1

在 Firefox 中弃用 element.setUserData 之前,我使用它来存储一些数据并将其附加到一个元素。但现在来自文档:
https ://developer.mozilla.org/en-US/docs/Web/API/Node.setUserData

我们可以看到这个 API 已被弃用,而 Element.dataset 是首选。
我使用 element.setUserData 来存储对象或数组,但 element.dataset 只能存储字符串。

那么是否有任何其他替代存储对象并将其附加到元素?

4

2 回答 2

0

这很容易.. 将您的数组序列化为一个字符串,然后将该字符串转换回一个数组....

var aUserData = new Array("This", "Is", "Easy") ;

var sUserData = aUserData.toString( "|" ) ; // 序列化数组

var aBackFromString = sUserData.split("|") ; // 将字符串转换回数组

于 2013-11-13T08:10:11.930 回答
0

参考:如何将数据从网页传输到 Firefox 扩展

使用 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);
});
于 2013-11-15T07:08:08.153 回答