xsl-list
[Top] [All Lists]

RE: href problem...using CDATA needed?

2003-06-13 13:24:30
[ Kathy Burke]
... I've also tried using 
a javascript
within CDATA.

                      <head>  
                        <msxsl:script language="javascript"
implements-prefix="kb"><![CDATA[

                              function openWindow()
                        {
                        window.open(), 'Link Window', 'toolbar=1,
menubar=1 resizable=1, dependent=0, status=0
                                      width=400, height=300, left=25,
top=25')
                              }
                        ]]>
                        </msxsl:script>
                      </head?

then used this template:

      <xsl:template match="link">
        <a href="javascript:openWindow({(_at_)url})">
      <xsl:apply-templates/></a>
      </xsl:template>

with no success.

I'm not asking a javascript question...I'm asking how I can 
correctly refer
to the {(_at_)url} within my href.


Well, two things.  We can have no idea about {(_at_)url} giving you "no
success" - we do not know what you _did_  get, we do not know what the
source xml is like, and we do not know what context your template is
seeing.

That's one. Second, I see no purpose for the msxsl:script element.  Are
you not just producing javascript?  That is what it looks like.  If you
are producing an html page, you want to end up with a script element, so
just use one -

<head>  
<script language="javascript">
function openWindow()
{
    window.open( 'Link Window', 'toolbar=1,
    menubar=1 resizable=1, dependent=0, status=0,
    width=400, height=300, left=25,
     top=25')
}
</script>
</head>

(I corrected a few typos) Using a CDATA section is OK, but you do not
need it here because there is nothing that needs escaping.

In your template, it seems very unusual to have an apply-templates
instruction within the body of an anchor element.  An anchor is supposed
to contain only inline elements - it is not clear why you would need
apply-templates. If it is going to return structured information, an
anchor element is the wrong place for it.  If it is going to return a
bit of text like a label, chances are you can do it with just
xsl:value-of.

Cheers,

Tom P

 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list