Re: XSLT processing model in Mozilla
"John J. Barton" <[email protected]> Mon, 06 Aug 2007 21:06:48 -0700
| Newsgroups | gmane.comp.mozilla.devel.layout.xslt |
|---|---|
| Message-ID | <[email protected]> |
Jonas Sicking wrote: > John J. Barton wrote: >>>>> What it might be is that you're managing to attach eventlisteners >>>>> to the source XML file, i.e. the one before transformation takes >>>>> place. I do think we might (arguably errorously) be firing events >>>>> at that document. >>>> >>>> I am trying to attach to the *window* before the transformation. The >>>> last point that I can trace is the load of the .xsl file. >>> >>> Note that scripts in the .xsl file are not run before the >>> transformation. They are run during the transformation when those >>> result elements are created. >> >> Right, but what window are they created in? Or what happens to the >> window during the transformation besides the document transform? > > I assume you mean "run" when you say "created"? It happens in the window > that is returned when you say 'window' in the webpage. > > >>>>> However I think we're not firing them at the result document, which >>>>> probably is where firebug is attaching its listeners. >>>> >>>> In my test the listeners that succeed are in the .xsl file. The >>>> window.addEventListener() calls are in the XSLT result and were are >>>> not in the xml file. The listeners that fail are attached in a >>>> nsiWebProgressListener on a window with a .xml uri before the >>>> transformation. >>>> >>>> Now "source document" and "result document" sounds interesting. From >>>> my point of view there is only a window, its primary document. Can I >>>> see the source document or result document in javascript code? >>> >>> You can't get to the source document from within a webpage. You might >>> be able to get to it from chrome, I don't know. You can try. The >>> result document is what you get when you use 'document' in javascript >>> in the result page. >> >> Yes, but my problem is that the *window* that the result document >> lives in is somehow not the same as the source window. I only have the >> source window to watch. So I can't get the result document because I >> don't have the result window. Or rather I have event listeners on the >> source window and they appear to get erased. The result window could >> be the same object, but its contents outside of the document being >> transformed seem to be changed. > > After some digging and help from jst we determined that what happens is > that we once the xslt execution starts remove all registered > eventhandlers and remove all set properties on the window. > > This is something that we could try to fix, we probably should. Feel > free to file a bug on it and help out with testing patches once they're > written. https://bugzilla.mozilla.org/show_bug.cgi?id=391177 Thanks for your time and expertise, John. > > Best, > Jonas Sicking