替换Element.setUserData

时间:2013-11-13 07:27:00

标签: javascript

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

我们可以看到不推荐使用此API,而首选Element.dataset 我使用element.setUserData来存储对象或数组,但element.dataset只能存储字符串。

那么商店对象是否还有其他替代品并将其附加到元素上?

2 个答案:

答案 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);
});