code error...a simple javascript problem...urgent**

Hi,
This code works great for tooltip. but the only problem is...if the strHTM is not defined in the tooltip then it says undefined in the tooltip... how to avoid that? for example...if my code says <a href="#" onMouseover="tooltip(welcome);">welcome</a> then it works gr8...if i am saying <a href="#" onMouseover="tooltip();">welcome</a> then it says undefined...i need a logic to validate that....urgent please.


<html>
<head>
<script>
var oPopup = window.createPopup();
function tooltip(strHTML, oNavigate)
{      
      oPopup.hide();
      oPopup.document.navigateTo = oNavigate;
      oPopup.document.desiredX = event.screenX+12;
      oPopup.document.desiredY = event.screenY+12;    
      if(strHTML!=""){
            oPopup.document.body.innerHTML = '<table style=\'background:#ffffcc; border:1px solid black; padding:4px; font-family:tahoma; font-size:10px; width:100%;filter:progid:DXImageTransform.Microsoft.Gradient(GradientType=0,StartColorStr=white, EndColorStr=yellowgreen)\' ><tr><td><table style=\'background:#ffffcc; border:1px solid yellowgreen; padding:4px; font-family:tahoma; font-size:10px; width:100%;filter:progid:DXImageTransform.Microsoft.Gradient(GradientType=0,StartColorStr=yellowgreen, EndColorStr=white)\' ><tr><td>' + strHTML + '</td></tr></table></td></tr></table>';
      }
      oPopup.document.timerID = setTimeout("showtooltip()", 500);
}
function showtooltip()
{
      // This popup is temporary and is used only to detect what height the popup should be displayed. This is important because the
      // popup size will vary between definition text lengths.
      var popupBody = oPopup.document.body;
      oPopup.show(0,0,0,0);
      var realHeight = popupBody.scrollHeight;
      var realWidth = popupBody.scrollWidth;
      //hide the dimension detector popup.
      oPopup.hide();
      //Show the actual popup with correct width and height.
      oPopup.show(oPopup.document.desiredX, oPopup.document.desiredY,realWidth, realHeight);      
}
function hidetooltip()
{
      oPopup.hide();
      // cancel delayed display of tooltip
      if (oPopup.document.timerID)
      {
            clearTimeout(oPopup.document.timerID);
            oPopup.document.timerID = 0;
      }
}
</script>
</head>
<BODY>
<a href="#" onMouseOver="tooltip()">Welcome</a>
</body>
</html>
LVL 2
SubhaBabuAsked:
Who is Participating?
 
StormyWatersConnect With a Mentor Commented:
function tooltip(strHTML, oNavigate)
{    
     oPopup.hide();
       oPopup.document.body.innerHTML = '';
     oPopup.document.navigateTo = oNavigate;
     oPopup.document.desiredX = event.screenX+12;
     oPopup.document.desiredY = event.screenY+12;    
     if(strHTML!=null){
          oPopup.document.body.innerHTML = '<table style=\'background:#ffffcc; border:1px solid black; padding:4px; font-family:tahoma; font-size:10px; width:100%;filter:progid:DXImageTransform.Microsoft.Gradient(GradientType=0,StartColorStr=white, EndColorStr=yellowgreen)\' ><tr><td><table style=\'background:#ffffcc; border:1px solid yellowgreen; padding:4px; font-family:tahoma; font-size:10px; width:100%;filter:progid:DXImageTransform.Microsoft.Gradient(GradientType=0,StartColorStr=yellowgreen, EndColorStr=white)\' ><tr><td>' + strHTML + '</td></tr></table></td></tr></table>';
       }
      
     oPopup.document.timerID = setTimeout("showtooltip()", 500);
}
0
 
StormyWatersCommented:
Change:
 if(strHTML!=""){
to:
 if(strHTML!=null){

and it won't show a tooltip at all if no text is specified.
You could also make it show some default text by changing the tooltip() function to:

function tooltip(strHTML, oNavigate)
{    
     oPopup.hide();
     oPopup.document.navigateTo = oNavigate;
     oPopup.document.desiredX = event.screenX+12;
     oPopup.document.desiredY = event.screenY+12;    
     if(strHTML==null) {
       strHTML = "Your default message";
     }
          oPopup.document.body.innerHTML = '<table style=\'background:#ffffcc; border:1px solid black; padding:4px; font-family:tahoma; font-size:10px; width:100%;filter:progid:DXImageTransform.Microsoft.Gradient(GradientType=0,StartColorStr=white, EndColorStr=yellowgreen)\' ><tr><td><table style=\'background:#ffffcc; border:1px solid yellowgreen; padding:4px; font-family:tahoma; font-size:10px; width:100%;filter:progid:DXImageTransform.Microsoft.Gradient(GradientType=0,StartColorStr=yellowgreen, EndColorStr=white)\' ><tr><td>' + strHTML + '</td></tr></table></td></tr></table>';
     oPopup.document.timerID = setTimeout("showtooltip()", 500);
}


0
 
SubhaBabuAuthor Commented:
Thanks for your immediate reply....your solution works...if it has only one link ....if i add like

<a href="#" onMouseOver="tooltip()">Welcome</a> <a href="#" onMouseOver="tooltip('you there')">Welcome</a>

this...it shows "you there" for both the links
0
Cloud Class® Course: SQL Server Core 2016

This course will introduce you to SQL Server Core 2016, as well as teach you about SSMS, data tools, installation, server configuration, using Management Studio, and writing and executing queries.

 
SubhaBabuAuthor Commented:
And i do not want to give a default message, since i am gonna use this in too many places...
0
 
StormyWatersCommented:
That doesn't happen for me. IE, obviously, because this doesn't work anywhere else. Version 6.0. What version are you looking at?
0
 
SubhaBabuAuthor Commented:
i want it to work only in IE 6....
0
 
StormyWatersCommented:
Oh, wait, yes it does. Will look.
0
 
SubhaBabuAuthor Commented:
Hi there...

Its still has the problem....
0
 
StormyWatersCommented:
Okay... I have no idea then. Because it works fine for me.
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.