OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

 


 

   RE: [xml-dev] How do we call Javascript function in XSL file on Netscape

[ Lists Home | Date Index | Thread Index ]

I am clicking on the hyperlink and then test() function is called.

I changed the <script> element as you described and still does not work.

This is the html I got in MSXML. I saved this into file and opened in
Netscape and works fine. But Netscape is generating HTML using MSXML !!
<html>
<head>
<META http-equiv="Content-Type" content="text/html; charset=UTF-16">
<SCRIPT type="text/javascript"><!--
function test(avalue) {
alert(avalue);
}
--></SCRIPT></head>
<body>
<table border="1">
<tr>
<td>Equipment No.</td>
<td>Description</td>
</tr>
<tr>
<td><a href="javascript:test('prod39.xml')">010.AS100</a></td>
<td>High-top airslide 300 12 200</td>
</tr>
<tr>
<td><a href="javascript:test('prod38.xml')">010.AS200</a></td>
<td>Low-bottom airslide 200 12 100</td>
</tr>
<tr>
<td><a href="javascript:test('prod37.xml')">010.AS300</a></td>
<td>No-bottom airslide 200 12 100</td>
</tr>
</table>
</body>
</html>

[Jeff wrote]
> Looks OK to me, and works for me in IE6, except that in recent HTML you
> are
> supposed to use
> <SCRIPT type="text/javascript">
> instead of
> <SCRIPT language="JavaScript">
> The language attribute still exists but is deprecated.  It's possible that
> Netscape also uses a case-sensitive spelling of javascript (I don't have a
> copy of Netscape handy.)  The way to try this is to use a separate XSLT
> processor (MSXSLT or Xalan from apache.org or something else), run it on
> your xml file, putting the html output into a file.  Then stick the html
> result into Netscape separately and see what happens.  You could also try
> changing the SCRIPT element as described above and see if it makes any
> difference.
> 
> Also, your description of the problem is a bit inaccurate.  Your XSL
> transform is *emitting* javascript, not calling it.  The javascript
> functions are only called when someone clicks on an item in the rendered
> HTML.
> 
> Jeff
> ----- Original Message -----
> From: "Deshpande, Gururaj" <gururaj.deshpande@flsmidth.com>
> To: "'Jeff Greif'" <jgreif@alumni.princeton.edu>
> Sent: Wednesday, April 10, 2002 10:39 AM
> Subject: RE: [xml-dev] How do we call Javascript function in XSL file on
> Netscape (Ver 6.2) browser?
> 
> 
> > Hi Jeff,
> >
> > I am copying my XSL and XML file. What is wrong with this?
> >
> > --------------------------------
> > <?xml version='1.0' encoding="iso-8859-1"?>
> > <xsl:stylesheet version="1.0"
> > xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>
> > <xsl:output method="html"/>
> > <xsl:template match="/">
> >    <html>
> >       <head>
> > <SCRIPT language="JavaScript"><![CDATA[
> > function test(avalue) {
> > alert(avalue);
> > }
> >       ]]></SCRIPT>
> >       </head>
> >       <body>
> > <table border="1">
> > <tr>
> >     <td width="15%" align="center">Equipment No.</td>
> >     <td width="50%" align="center">Description</td>
> > </tr>
> > <xsl:apply-templates select="plant/dept/eqpt"/>
> > </table>
> >      </body>
> >    </html>
> > </xsl:template>
> > <xsl:template match="plant/dept/eqpt">
> > <xsl:for-each select=".">
> >         <tr>
> > <td><a
> > href="javascript:test('{prodxml}')"><xsl:value-of
> > select="equipmentno"/></a></td>
> >     <td><xsl:value-of select="description"/></td>
> > </tr>
> > </xsl:for-each>
> > </xsl:template>
> > </xsl:stylesheet>
> >
> --------------------------------------------------------------------------
> > <?xml version="1.0" encoding="iso-8859-1"?>
> > <?xml-stylesheet type="text/xsl" href="..\html\equipment-1.xsl"?>
> > <plant>
> >     <dept deptid="231">
> >         <eqpt eqptid="39">
> >             <equipmentno>010.AS100</equipmentno>
> >             <description>High-top airslide 300 12 200</description>
> >             <prodxml>prod39.xml</prodxml>
> >         </eqpt>
> >         <eqpt eqptid="38">
> >             <equipmentno>010.AS200</equipmentno>
> >             <description>Low-bottom airslide 200 12 100</description>
> >             <prodxml>prod38.xml</prodxml>
> >         </eqpt>
> >         <eqpt eqptid="37">
> >             <equipmentno>010.AS300</equipmentno>
> >             <description>No-bottom airslide 200 12 100</description>
> >             <prodxml>prod37.xml</prodxml>
> >         </eqpt>
> >     </dept>
> > </plant>
> >
> >
> > > The html document your XSLT transform is creating is invalid according
> to
> > > the HTML 4.01 DTD.  The only allowed content for the HTML element is
> > > (HEAD,
> > > BODY).  You probably meant to put the link and SCRIPT elements into
> the
> > > HEAD
> > > element.  Perhaps Netscape 6.2 is more standards-compliant and refuses
> to
> > > accept illegal HTML?  It is useful in cases like these to run the
> output
> > > of
> > > the style sheet through the W3C 'tidy' program.
> > >
> > > Jeff
> > > ----- Original Message -----
> > > From: "Deshpande, Gururaj" <gururaj.deshpande@flsmidth.com>
> > > To: <xml-dev@lists.xml.org>
> > > Sent: Wednesday, April 10, 2002 8:11 AM
> > > Subject: [xml-dev] How do we call Javascript function in XSL file on
> > > Netscape (Ver 6.2) browser?
> > >
> > >
> > > > To, all XML Gurus
> > > > My question is about Netscape 6.2, XSL, XML and Javascript. I am
> doing
> > > > client side transformation. No server support at all. When I call
> > > javascript
> > > > function within XSL file, Netscape does not run / understand the
> > > javascript.
> > > > Same works on IE without problems.
> > > > I am copying my XSL file below.
> > > > Does anybody has a solution? Thanks
> > > > Gururaj
> > > >
> > >
> >
> >




 

News | XML in Industry | Calendar | XML Registry
Marketplace | Resources | MyXML.org | Sponsors | Privacy Statement

Copyright 2001 XML.org. This site is hosted by OASIS