bestiejs / json3

A JSON polyfill. No longer maintained.
https://bestiejs.github.io/json3
Other
1.02k stars 150 forks source link

Json3 and Firefox #28

Closed CMCDragonkai closed 11 years ago

CMCDragonkai commented 11 years ago

Hi all,

On Firefox, JSON3 is giving this warning message from firefox:

"Use of attributes' specified attribute is deprecated. It always returns true."

Seems like this is happening with jQuery too. http://support.mozilla.org/en-US/questions/886675

ghost commented 11 years ago

Hi, @CMCDragonkai! Yep, I'm familiar with the warning—DOM 4 deprecated many of the redundancies in how attributes are implemented, and this is but one example. What's unclear is why you're seeing it, given that JSON 3 is a core language shim that doesn't touch the DOM at all.

Do you, by chance, have any third-party scripts or extensions that interact with the page?

CMCDragonkai commented 11 years ago

Yes AngularJS also shows the error. On Mar 29, 2013 3:43 AM, "Kit Cambridge" notifications@github.com wrote:

Hi, @CMCDragonkai https://github.com/CMCDragonkai! Yep, I'm familiar with the warning—DOM 4 deprecated many of the redundancies in how attributes are implemented, and this is but one example. What's unclear is why you're receiving this warning, given that JSON 3 is a core language shim that doesn't touch the DOM at all.

Do you, by chance, have any third-party scripts or extensions that interact with the page?

— Reply to this email directly or view it on GitHubhttps://github.com/bestiejs/json3/issues/28#issuecomment-15599446 .

ghost commented 11 years ago

Okay—Angular uses .specified in its collectDirectives and attr functions to work around IE attribute bugs (historical trivia: in modern implementations, the specified property is meaningless, since getNamedItem will never return attributes that haven't been specified on the element. Contrastingly, IE <= 8 optimistically populates an element's attributes collection, and uses specified to communicate which attributes have actually been specified. This is all done to work around inconsistencies in getAttribute and setAttribute).

I suspect Angular will eventually remove this workaround (as will jQuery 2.x), since it's only necessary for older environments—but, until these environments go away, I doubt Firefox will actually remove the specified property or other attribute node methods. That would be a backward-compatibility nightmare.

TL;DR: This isn't an issue with JSON 3. :smiley: