RE: [xsl] links don't work when IE transforms XSL document

Subject: RE: [xsl] links don't work when IE transforms XSL document
From: "Passin, Tom" <tpassin@xxxxxxxxxxxx>
Date: Fri, 1 Oct 2004 12:02:39 -0400
From: Anton Triest [mailto:anton@xxxxxxxx]

> The links are broken (1) only in IE,

What do you mean by "broken"?  Do you mean that the page looks right but
nothing happens when you click on one of the links?  Or does the page
not look as expected?

(2) only when the <?xml-stylesheet
> PI is used (ie. client-side)
> *and* (3) only if an xsl file is used as input: if I send this file to
IE:
>
> --- dummy.xml ---
> <?xml version="1.0"?>
> <?xml-stylesheet type="text/xsl" href="anchors.xsl"?>
> <dummy/>
>
> the links work fine... but as soon as I just rename "dummy.xml" to
> "dummy.xsl" the links are broken again!
>
> Sorry for the long post, but this one is breaking my head, and I
wanted
> to describe things as clearly as possible.

It sounds like IE gets confused when you try to load an xsl document as
the xml source.  Perhaps IE is trying to be too smart for its own good,
and makes a guess about what you want, which unfortunately is a wrong
guess.  Or perhaps IE has a bug that is preventing the links from being
interpreted as hyperlinks when it transforms a file with the .xsl
extension.  You didn't say if you were loading the file from the file
system or through a web server, and it might even be that you would get
different results in the two cases.

If it is an IE bug, there could be an easy workaround, although you
would have to try it out to make sure it works with IE.  Use a dummy
file for your source, as in your cut-down example above.  In the root
(and only) element, include the url of the file you actually want to
transform (like the stylesheet).  Get that document using document(),and
transform that instead of the dummy source document.

Alternatively, use the dummy source file without the url of the real
target, and feed the url in as a parameter, then get the document using
document() and transform it as above.

I admit this is a bit strange, but if you actually are dealing with an
IE bug, it might work, and it wouldn't be very hard to implement.

Cheers,

Tom P

Current Thread