[whatwg] Make DOMStringMap constructable, and el.dataset writeable?

Tab Atkins Jr. jackalmage at gmail.com
Fri Nov 30 16:07:09 PST 2012


On Fri, Nov 30, 2012 at 1:31 PM, Boris Zbarsky <bzbarsky at mit.edu> wrote:
> On 11/30/12 2:23 PM, Tab Atkins Jr. wrote:
>> It would be somewhat cleaner if she could simply construct a
>> DOMStringMap and assign it, like so:
>>
>> for(var i = 0; i < cards.length; i++) {
>>    cards[i].dataset = new DOMStringMap(carddata[i]);
>
> So this would copy the DOMStringMap into the dataset, not actually change
> the value of cards[i].dataset, right?

Sure.  I presume you're afraid of multiple elements sharing the same object?

> Given that, would it make more sense to just have a setFrom method on
> dataset that takes a string?  I guess the problem with that is name
> collisions with data items...

Yes, collisions make this a no-go.

> Really, what we want to be able to do here is assign a string to .dataset
> and have it do the right thing...  WebIDL doesn't really support that very
> well; perhaps it should.

What would the string be?  String-serialized JSON object?

Isn't this what [PutForwards] is for?

>> Another potentially interesting use-case for this is making it
>> possible to "transfer" data-* attributes from one element to another
>> with a simple "el1.dataset = el2.dataset;" statement.
>
> Again, this would copy, not share, yes?

Yes.  I presume same fear?

~TJ



More information about the whatwg mailing list