1

Before element.setUserData is deprecated in Firefox, I use it to store and attach some data to one element. But now from the doc:
https://developer.mozilla.org/en-US/docs/Web/API/Node.setUserData

We can see that this API is deprecated and Element.dataset is preferred.
I use element.setUserData to store object or array, but element.dataset can only store string.

So is there any other replacement for store object and attach it to an element?

Leslie Wu
  • 760
  • 3
  • 13
  • 29
  • Check [Replacement for DOM3 getUserData/setUserData methods](http://stackoverflow.com/questions/10943519/replacement-for-dom3-getuserdata-setuserdata-methods) – Anto Jurković Nov 13 '13 at 07:59

2 Answers2

0

That is easy.. serialize your array into a string then take that sting and convert it back into an array....

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

var sUserData = aUserData.toString( "|" ) ; // Serialize Array

var aBackFromString = sUserData.split( "|" ) ; // Convert String Back To Array

0

Ref: How can I transfer data to firefox extension from web page

Use a CustomEvent, which can carry custom data in the .detail member.
From web:

  var event = new CustomEvent("custom-event-id", {
  "bubbles": true,
  "detail": {
    "some": "data",
    "number": 1
  }
});
elem.dispatchEvent(event);

From extension:

someWindowOrElement.addEventListener("custom-event-id", function(e) {
  console.log("got event for ", e.originalTarget, "with data", e.detail);
});
Community
  • 1
  • 1
Leslie Wu
  • 760
  • 3
  • 13
  • 29