On 8/07/11 10:21 PM, Sean Hogan wrote:
On 8/07/11 8:28 AM, Jonas Sicking wrote:
On Thu, Jul 7, 2011 at 3:21 PM, John J Barton
<johnjbar...@johnjbarton.com> wrote:
Jonas Sicking wrote:
We are definitely
short on use cases for mutation events in general which is a problem.
3. Client side dynamic translation. Intercept mutations and replace or
extend them. This could be for user tools like scriptish or stylish,
dev
tools to inject marks or code, or for re-engineering complex sites
for newer
browser features.
I don't fully understand this. Can you give more concrete examples?
A couple of comments on these use-cases:
- MathJax (http://mathjax.org) is a JS lib that facilitates putting
math onto the web by converting LaTeX or MathML markup in a page to
HTML. By default MathJax triggers off the onload event to run this
conversion on the page. When content containing math is dynamically
added to the page, MathJax must be called manually to convert the new
content. A DOM insertion listener could potentially be used to handle
this conversion automatically.
- A similar use-case is element augmentation too complex for CSS
:before and :after
The previous cases respond to content being inserted into the page by
(potentially) adding more content. Ideally these additional insertions
wouldn't trigger additionally mutation listeners. I guess the current
event system facilitates this with stopPropagation().
- ARIA support in JS libs currently involves updating aria-attributes
to be appropriate to behavior the lib is implementing. Attribute
mutation listeners would allow an inverse approach - behaviors being
triggered off changes to aria-attributes.
As has been mentioned, listening for attribute mutations is horrendously
inefficient because your handler has to receive every mutation, even if
only interested in one attribute.
- DOM insertion and removal listeners could facilitate the
implementation of automatically updating Table-of-* (Headings / Images
/ etc).