W3C home > Mailing lists > Public > public-html@w3.org > May 2015

Re: Deprecated Attr methods

From: Matthew Phillips <matthew@bitovi.com>
Date: Fri, 22 May 2015 10:33:57 -0400
Message-ID: <CAHm1x+YDpy-Z2dzq39+JA5e=x_M4ufMquodGjMGHrOM8SLCrOg@mail.gmail.com>
To: Philip J├Ągenstedt <philipj@opera.com>
Cc: public-html <public-html@w3.org>
I spoke too soon, that workaround won't work for the same reason
setAttribute will not.

On Fri, May 22, 2015 at 10:30 AM, Matthew Phillips <matthew@bitovi.com>
wrote:

> Thanks Philip.  setAttribute can't be used in my scenario because it
> doesn't accept some characters, this will throw:
>
> el.setAttribute("[foo]", "bar")
>
> As not being a valid attribute name. However innerHTML will accept these
> types of attribute names just fine.
>
> These special attribute names are started to be adopted by frameworks for
> data-binding (Angular 2 is doing something like this I believe).
>
> Maybe we should adjust what is a valid attribute name?
>
> For now I think your workaround might work, I'll give it a try.
>
> On Fri, May 22, 2015 at 8:14 AM, Philip J├Ągenstedt <philipj@opera.com>
> wrote:
>
>> On Thu, May 21, 2015 at 8:01 PM, Matthew Phillips <matthew@bitovi.com>
>> wrote:
>> > I just came across a warning for using a deprecated Attr method:
>> >
>> >
>> https://developer.mozilla.org/en-US/docs/Web/API/Attr#Deprecated_properties_and_methods
>> >
>> > I'm using cloneNode() which is on the list. What is the workaround?
>> Will I
>> > be able to do Node.prototype.cloneNode.call(attr) instead?
>>
>> Hi Matthew,
>>
>> This is related to a simplification of Attr that, if successful, would
>> result in Attr no longer inheriting from Node:
>> https://dom.spec.whatwg.org/#interface-attr
>>
>> If that happens, Node.prototype.cloneNode.call(attr) wouldn't work
>> either, because attr would no longer be a Node, so it would throw an
>> exception.
>>
>> Your best bet is to avoid Attr entirely, using getAttribute() and
>> setAttribute() instead. However, if for some reason you have an Attr
>> and want to set the same attribute on another element,
>> element2.setAttributeNS(attr.namespaceURI, attr.name, attr.value)
>> should do the trick.
>>
>> Philip (does not work on Gecko, but pokes at Attr in Blink)
>>
>
>
>
> --
> Bitovi
> Development | Design | Training | Open Source
>



-- 
Bitovi
Development | Design | Training | Open Source
Received on Friday, 22 May 2015 14:34:26 UTC

This archive was generated by hypermail 2.4.0 : Saturday, 9 October 2021 18:46:13 UTC