Results 1 to 5 of 5

Thread: Image w/ description tooltip (Runtime Error + not working in IE)

  1. #1
    Join Date
    Jul 2006
    Posts
    7
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Default Image w/ description tooltip (Runtime Error + not working in IE)

    1) Script Title: Image w/ description tooltip

    2) Script URL (on DD): http://www.dynamicdrive.com/dynamici...agetooltip.htm

    3) Describe problem: I just installed the script and it worked fine when viewed in Firefox (mouseover the link "view poster"), however it didn't seem to work in IE, and gave me a Runtime Error message:

    A Runtime Error has occured
    Do you wish to debug?
    Line:118
    Error: Invalid property value

    Here's my webpage: http://www.skitheworld.com/about_war...ography00.html

    I placed the following <div> just before </body> on the html:
    Code:
    <div id="tipDiv" style="position:absolute; visibility:hidden; z-index:100"></div>
    The Javascript is linked to an external file mouseoverimage.js:

    Code:
    /***********************************************
    * Image w/ description tooltip- By Dynamic Web Coding (www.dyn-web.com)
    * Copyright 2002-2007 by Sharon Paine
    * Visit Dynamic Drive at http://www.dynamicdrive.com/ for full source code
    ***********************************************/
    
    /* IMPORTANT: Put script after tooltip div or 
    	 put tooltip div just before </BODY>. */
    
    var dom = (document.getElementById) ? true : false;
    var ns5 = (!document.all && dom || window.opera) ? true: false;
    var ie5 = ((navigator.userAgent.indexOf("MSIE")>-1) && dom) ? true : false;
    var ie4 = (document.all && !dom) ? true : false;
    var nodyn = (!ns5 && !ie4 && !ie5 && !dom) ? true : false;
    
    var origWidth, origHeight;
    
    // avoid error of passing event object in older browsers
    if (nodyn) { event = "nope" }
    
    ///////////////////////  CUSTOMIZE HERE   ////////////////////
    // settings for tooltip 
    // Do you want tip to move when mouse moves over link?
    var tipFollowMouse= true;	
    // Be sure to set tipWidth wide enough for widest image
    var tipWidth= 400;
    var offX= 50;	// how far from mouse to show tip
    var offY= 12; 
    var tipFontFamily= "Verdana, arial, helvetica, sans-serif";
    var tipFontSize= "8pt";
    // set default text color and background color for tooltip here
    // individual tooltips can have their own (set in messages arrays)
    // but don't have to
    var tipFontColor= "#000000";
    var tipBgColor= "#ffffff"; 
    var tipBorderColor= "##000000";
    var tipBorderWidth= 1;
    var tipBorderStyle= "solid";
    var tipPadding= 4;
    
    // tooltip content goes here (image, description, optional bgColor, optional textcolor)
    var messages = new Array();
    // multi-dimensional arrays containing: 
    // image and text for tooltip
    // optional: bgColor and color to be sent to tooltip
    messages[0] = new Array('../about_warren_miller/images/posters/00-1951.jpg','California Skis 1951',"#FFFFFF");
    messages[1] = new Array('../about_warren_miller/images/posters/01-1952.jpg','Wandering Skis 1952',"#FFFFFF");
    messages[2] = new Array('../about_warren_miller/images/posters/02-1953.jpg','Ski Fantasy 1953',"#FFFFFF");
    messages[3] = new Array('../about_warren_miller/images/posters/03-1955.jpg','Invitation To Skiing 1955',"#FFFFFF");
    messages[4] = new Array('../about_warren_miller/images/posters/04-1956.jpg','Have Skis, Will Travel 1956',"#FFFFFF");
    messages[5] = new Array('../about_warren_miller/images/posters/05-1957.jpg','Anyone For Skiing? 1957',"#FFFFFF");
    messages[6] = new Array('../about_warren_miller/images/posters/06-1959.jpg','Let's Go Skiing 1959',"#FFFFFF");
    messages[7] = new Array('../about_warren_miller/images/posters/07-1960.jpg','Swingin' Skis 1960',"#FFFFFF");
    messages[8] = new Array('../about_warren_miller/images/posters/08-1962.jpg','Around The World On Skis 1962',"#FFFFFF");
    messages[9] = new Array('../about_warren_miller/images/posters/09-1966.jpg','Ski On The Wild Side 1966',"#FFFFFF");
    messages[10] = new Array('../about_warren_miller/images/posters/10-1970.jpg','The Sound of Winter 1970',"#FFFFFF");
    
    ////////////////////  END OF CUSTOMIZATION AREA  ///////////////////
    
    // preload images that are to appear in tooltip
    // from arrays above
    if (document.images) {
    	var theImgs = new Array();
    	for (var i=0; i<messages.length; i++) {
      	theImgs[i] = new Image();
    		theImgs[i].src = messages[i][0];
      }
    }
    
    // to layout image and text, 2-row table, image centered in top cell
    // these go in var tip in doTooltip function
    // startStr goes before image, midStr goes between image and text
    var startStr = '<table width="' + tipWidth + '"><tr><td align="center" width="100%"><img src="';
    var midStr = '" border="0"></td></tr><tr><td valign="top">';
    var endStr = '</td></tr></table>';
    
    ////////////////////////////////////////////////////////////
    //  initTip	- initialization for tooltip.
    //		Global variables for tooltip. 
    //		Set styles
    //		Set up mousemove capture if tipFollowMouse set true.
    ////////////////////////////////////////////////////////////
    var tooltip, tipcss;
    function initTip() {
    	if (nodyn) return;
    	tooltip = (ie4)? document.all['tipDiv']: (ie5||ns5)? document.getElementById('tipDiv'): null;
    	tipcss = tooltip.style;
    	if (ie4||ie5||ns5) {	// ns4 would lose all this on rewrites
    		tipcss.width = tipWidth+"px";
    		tipcss.fontFamily = tipFontFamily;
    		tipcss.fontSize = tipFontSize;
    		tipcss.color = tipFontColor;
    		tipcss.backgroundColor = tipBgColor;
    		tipcss.borderColor = tipBorderColor;
    		tipcss.borderWidth = tipBorderWidth+"px";
    		tipcss.padding = tipPadding+"px";
    		tipcss.borderStyle = tipBorderStyle;
    	}
    	if (tooltip&&tipFollowMouse) {
    		document.onmousemove = trackMouse;
    	}
    }
    
    window.onload = initTip;
    
    /////////////////////////////////////////////////
    //  doTooltip function
    //			Assembles content for tooltip and writes 
    //			it to tipDiv
    /////////////////////////////////////////////////
    var t1,t2;	// for setTimeouts
    var tipOn = false;	// check if over tooltip link
    function doTooltip(evt,num) {
    	if (!tooltip) return;
    	if (t1) clearTimeout(t1);	if (t2) clearTimeout(t2);
    	tipOn = true;
    	// set colors if included in messages array
    	if (messages[num][2])	var curBgColor = messages[num][2];
    	else curBgColor = tipBgColor;
    	if (messages[num][3])	var curFontColor = messages[num][3];
    	else curFontColor = tipFontColor;
    	if (ie4||ie5||ns5) {
    		var tip = startStr + messages[num][0] + midStr + '<span style="font-family:' + tipFontFamily + '; font-size:' + tipFontSize + '; color:' + curFontColor + ';">' + messages[num][1] + '</span>' + endStr;
    		tipcss.backgroundColor = curBgColor;
    	 	tooltip.innerHTML = tip;
    	}
    	if (!tipFollowMouse) positionTip(evt);
    	else t1=setTimeout("tipcss.visibility='visible'",100);
    }
    
    var mouseX, mouseY;
    function trackMouse(evt) {
    	standardbody=(document.compatMode=="CSS1Compat")? document.documentElement : document.body //create reference to common "body" across doctypes
    	mouseX = (ns5)? evt.pageX: window.event.clientX + standardbody.scrollLeft;
    	mouseY = (ns5)? evt.pageY: window.event.clientY + standardbody.scrollTop;
    	if (tipOn) positionTip(evt);
    }
    
    /////////////////////////////////////////////////////////////
    //  positionTip function
    //		If tipFollowMouse set false, so trackMouse function
    //		not being used, get position of mouseover event.
    //		Calculations use mouseover event position, 
    //		offset amounts and tooltip width to position
    //		tooltip within window.
    /////////////////////////////////////////////////////////////
    function positionTip(evt) {
    	if (!tipFollowMouse) {
    		mouseX = (ns5)? evt.pageX: window.event.clientX + standardbody.scrollLeft;
    		mouseY = (ns5)? evt.pageY: window.event.clientY + standardbody.scrollTop;
    	}
    	// tooltip width and height
    	var tpWd = (ie4||ie5)? tooltip.clientWidth: tooltip.offsetWidth;
    	var tpHt = (ie4||ie5)? tooltip.clientHeight: tooltip.offsetHeight;
    	// document area in view (subtract scrollbar width for ns)
    	var winWd = (ns5)? window.innerWidth-20+window.pageXOffset: standardbody.clientWidth+standardbody.scrollLeft;
    	var winHt = (ns5)? window.innerHeight-20+window.pageYOffset: standardbody.clientHeight+standardbody.scrollTop;
    	// check mouse position against tip and window dimensions
    	// and position the tooltip 
    	if ((mouseX+offX+tpWd)>winWd) 
    		tipcss.left = mouseX-(tpWd+offX)+"px";
    	else tipcss.left = mouseX+offX+"px";
    	if ((mouseY+offY+tpHt)>winHt) 
    		tipcss.top = winHt-(tpHt+offY)+"px";
    	else tipcss.top = mouseY+offY+"px";
    	if (!tipFollowMouse) t1=setTimeout("tipcss.visibility='visible'",100);
    }
    
    function hideTip() {
    	if (!tooltip) return;
    	t2=setTimeout("tipcss.visibility='hidden'",100);
    	tipOn = false;
    }
    
    document.write('<div id="tipDiv" style="position:absolute; visibility:hidden; z-index:100"></div>')
    Any suggestions would be greatly appreciated! =)

    Cheers,
    Judy

  2. #2
    Join Date
    Aug 2004
    Posts
    10,143
    Thanks
    3
    Thanked 1,008 Times in 993 Posts
    Blog Entries
    16

    Default

    It looks like another script on your page causing an error in IE. Just to confirm this, try removing the other scripts on your page.

    BTW, please note that your page is currently in violation of our usage terms, since the credit notice doesn't appear inline on the page. Please reinstate the credit notice:

  3. #3
    Join Date
    Jul 2006
    Posts
    7
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Default

    I thought the credit notice was to be placed on the .js file.... I added it back to the html page now... Apologies.

    I tried removing the other scripts and still got the same error message. Since I have those same scripts throughout the site I don't think that is the problem. Anything else I could try?

    Thanks,
    Judy

  4. #4
    Join Date
    Mar 2005
    Location
    SE PA USA
    Posts
    30,495
    Thanks
    82
    Thanked 3,449 Times in 3,410 Posts
    Blog Entries
    12

    Default

    It looks like a simple typo:

    Code:
    ///////////////////////  CUSTOMIZE HERE   ////////////////////
    // settings for tooltip 
    // Do you want tip to move when mouse moves over link?
    var tipFollowMouse= true;	
    // Be sure to set tipWidth wide enough for widest image
    var tipWidth= 400;
    var offX= 50;	// how far from mouse to show tip
    var offY= 12; 
    var tipFontFamily= "Verdana, arial, helvetica, sans-serif";
    var tipFontSize= "8pt";
    // set default text color and background color for tooltip here
    // individual tooltips can have their own (set in messages arrays)
    // but don't have to
    var tipFontColor= "#000000";
    var tipBgColor= "#ffffff"; 
    var tipBorderColor= "##000000";
    var tipBorderWidth= 1;
    var tipBorderStyle= "solid";
    var tipPadding= 4;
    There could also be other problems.
    - John
    ________________________

    Show Additional Thanks: International Rescue Committee - Donate or: The Ocean Conservancy - Donate or: PayPal - Donate

  5. #5
    Join Date
    Jul 2006
    Posts
    7
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Default

    Hi John,

    That was culprit!! Thanks for the keen eye =D

    Cheers,
    Judy

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •