Wrox Programmer Forums
Go Back   Wrox Programmer Forums > XML > XSLT
XSLT General questions and answers about XSLT. For issues strictly specific to the book XSLT 1.1 Programmers Reference, please post to that forum instead.
Welcome to the p2p.wrox.com Forums.

You are currently viewing the XSLT section of the Wrox Programmer to Programmer discussions. This is a community of software programmers and website developers including Wrox book authors and readers. New member registration was closed in 2019. New posts were shut off and the site was archived into this static format as of October 1, 2020. If you require technical support for a Wrox book please contact http://hub.wiley.com
Old January 9th, 2009, 03:04 PM
Registered User
Join Date: Jan 2009
Posts: 8
Thanks: 1
Thanked 2 Times in 1 Post
Default How do I call to javascript with Semicolon embeded in XSLT?

I want to implement a DHTML tooltip feature as part as the HTML page generated by the XSLT sheet I'm writing.
The tooltip I want to implement is the one I found here:

When I use the javascript they give on a normal HTML page it works great but when I put it as part of the XSLT file I get an error because of the semicolon in the defenition of the HTML events calls in the <body> part.

For example this code would be problematic:
<a href="http://www.yahoo.com" onMouseover="ddrivetip('Visit Yahoo.com')";
onMouseout="hideddrivetip()">Search Engine</a>
because of the semicolon that I have marked in bold font (bold only here, not on the real xslt).

The XSLT is kind of long and 99% just copy&past of the script I've linked to above but it's here anyway:

<?xml version="1.0" encoding="ISO-8859-1"?>

<xsl:stylesheet version="1.0"

<xsl:template match="/">
<title>tooltip test</title>
<style type="text/css">

position: absolute;
width: 150px;
border: 2px solid black;
padding: 2px;
background-color: lightyellow;
visibility: hidden;
z-index: 100;
/*Remove below line to remove shadow. Below line should always appear last within this CSS*/
filter: progid:DXImageTransform.Microsoft.Shadow(color=gra y,direction=135);

<div id="dhtmltooltip"></div>

<script type="text/javascript">
* Cool DHTML tooltip script- © Dynamic Drive DHTML code library (www.dynamicdrive.com)
* This notice MUST stay intact for legal use
* Visit Dynamic Drive at http://www.dynamicdrive.com/ for full source code

var offsetxpoint=-60 //Customize x offset of tooltip
var offsetypoint=20 //Customize y offset of tooltip
var ie=document.all
var ns6=document.getElementById && !document.all
var enabletip=false
if (ie||ns6)
var tipobj=document.all? document.all["dhtmltooltip"] : document.getElementById? document.getElementById("dhtmltooltip") : ""

function ietruebody(){
return (document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body

function ddrivetip(thetext, thecolor, thewidth){
if (ns6||ie){
if (typeof thewidth!="undefined") tipobj.style.width=thewidth+"px"
if (typeof thecolor!="undefined" && thecolor!="") tipobj.style.backgroundColor=thecolor
return false

function positiontip(e){
if (enabletip){
var curX=(ns6)?e.pageX : event.clientX+ietruebody().scrollLeft;
var curY=(ns6)?e.pageY : event.clientY+ietruebody().scrollTop;
//Find out how close the mouse is to the corner of the window
var rightedge=ie&&!window.opera? ietruebody().clientWidth-event.clientX-offsetxpoint : window.innerWidth-e.clientX-offsetxpoint-20
var bottomedge=ie&&!window.opera? ietruebody().clientHeight-event.clientY-offsetypoint : window.innerHeight-e.clientY-offsetypoint-20

var leftedge=(offsetxpoint<0)? offsetxpoint*(-1) : -1000

//if the horizontal distance isn't enough to accomodate the width of the context menu
if (rightedge<tipobj.offsetWidth)
//move the horizontal position of the menu to the left by it's width
tipobj.style.left=ie? ietruebody().scrollLeft+event.clientX-tipobj.offsetWidth+"px" : window.pageXOffset+e.clientX-tipobj.offsetWidth+"px"
else if (curX<leftedge)
//position the horizontal position of the menu where the mouse is positioned

//same concept with the vertical position
if (bottomedge<tipobj.offsetHeight)
tipobj.style.top=ie? ietruebody().scrollTop+event.clientY-tipobj.offsetHeight-offsetypoint+"px" : window.pageYOffset+e.clientY-tipobj.offsetHeight-offsetypoint+"px"

function hideddrivetip(){
if (ns6||ie){

<h4 align="center"><u>hello world</u></h4>
<a href="http://www.yahoo.com" onMouseover="ddrivetip('Visit Yahoo.com')";
onMouseout="hideddrivetip()">Search Engine</a>

Thanks a lot for your help :)
Old January 12th, 2009, 12:35 AM
Friend of Wrox
Join Date: Jun 2008
Posts: 291
Thanks: 9
Thanked 29 Times in 29 Posts

Try the same transformation after deleting the semicolon. The html output will be the same. Deleting the semicolon in xslt wont produce different output in html. Both the outputs (with and without semicolon in html file does not show any difference it seems). Test it. I also tested.

Similar Threads
Thread Thread Starter Forum Replies Last Post
Java call within a Xalan-J XSLT mountainbiker XSLT 0 May 7th, 2008 12:24 AM
Javascript call within Flash file serpicolugnut Flash (all versions) 1 December 15th, 2006 05:25 PM
Help with Javascript function call fakeeyed Javascript 1 January 15th, 2006 04:27 AM
call javascript ukmachad BOOK: Beginning ASP.NET 1.0 0 November 24th, 2005 04:18 AM
how 2 call 'LoadKeyboardLayout' from Javascript iteamicp2p BOOK: ASP.NET Website Programming Problem-Design-Solution 1 October 13th, 2004 09:22 AM

Powered by vBulletin®
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.
Copyright (c) 2020 John Wiley & Sons, Inc.