Hi everybody, I have been trying to use MS Frontpage 2003 and the feature for allowing a bullet list to be created and then subsequently to be enabled with the collapse ability. I have followed the help in Frontpage and in the MS tech site but keep receiving an error against the javascript created from within the Frontpage web page creation process. I have googled the message ("an error has occurred in this script on this page") which got me to this site. I will include the javascript below that causes the error, BTW, I have registered DLLs, disabled javascript debuggers etc. Nothing has solved this problem and I now get a message prompting me to debug the script. I have narrowed this down to the script itself. Here it is: Hope I do this as prescribed! One last note, this seems to be something with the 1st line of code??

<!--
// See KB article about changing this dynamic HTML
	function getControlTag(src)
	{
		TRok = false
		while ("HTML" != src.tagName)
		{
			if ("IMG" == src.tagName || "FONT" == src.tagName || "A" == src.tagName || "TD" == src.tagName)
			    TRok = true
			if ("LI" == src.tagName)
				return src
			if ("TR" == src.tagName)
			{
				if(TRok)
					return src
				return null
			}
			src = src.parentElement
		}
		return null
	}
	function dynOutlineEnabled(src)
	{
		while ("BODY" != src.tagName)
		{
			table = "TABLE" == src.tagName;
			if(table && src.getAttribute("border", false) != "0")
				return false;
			if("OL" == src.tagName || "UL" == src.tagName || table)
			{
				if(null != src.getAttribute("nodynamicoutline", false))
					return false
				if(null != src.getAttribute("dynamicoutline", false))
					return true
				if(mac > 0)
				{
					var at = src.outerHTML.indexOf("dynamicoutline")
					if(at > 0)
					{
						var gt = src.outerHTML.indexOf(">")
						if(at < gt)
							return true
					}
				}
			}
			src = src.parentElement
		}
		return false
	}
    function initCollapse(src)
    {
		while ("BODY" != src.tagName)
		{
			table = "TABLE" == src.tagName;
    		if(table && src.getAttribute("border", false) != "0")
    			return false;
        	if("OL" == src.tagName || "UL" == src.tagName || table)
    		{
    			if(null != src.getAttribute("initcollapsed", false))
    				return true
    		}
    		src = src.parentElement
        }
		return false
    }
	function containedIn(src, dest)
	{
		if ("!" == src.tagName)
			return true
		src = getControlTag(src)
		if (src == dest)
		    return true
		return false
	}
    function initOutline()
    {
		var ms = navigator.appVersion.indexOf("MSIE");
    	mac = navigator.appVersion.indexOf("Macintosh");
		ie4 = (ms>0) && (parseInt(navigator.appVersion.substring(ms+5, ms+6)) >= 4);
		if(!ie4)
			return;
        listTags = new Array()
        listTags[0]="UL"
        listTags[1]="OL"
        listTags[2]="TABLE"
        for(j=0;j<listTags.length;j++)
        {
            tagName=listTags[j]
            coll=document.all.tags(tagName)
            for(i=0; i<coll.length; i++)
            {
                if(dynOutlineEnabled(coll[i].parentElement))
                {
                    if(initCollapse(coll[i]))
                        coll[i].style.display="none"
                }
            }
        }        
    }   
	function dynOutline()
	{
		var ms = navigator.appVersion.indexOf("MSIE");
		ie4 = (ms>0) && (parseInt(navigator.appVersion.substring(ms+5, ms+6)) >= 4);
		if(!ie4)
			return;
		var src = event.srcElement
		src = getControlTag(src)
		if (null == src)
			return
		if (!dynOutlineEnabled(src))
			return
		var idx = src.sourceIndex+1
		while (idx < document.all.length && containedIn(document.all[idx], src))
		{
			srcTmp = document.all[idx]
			tag = srcTmp.tagName
			if ("UL" == tag || "OL" == tag || "TABLE" == tag)
				srcTmp.style.display = srcTmp.style.display == "none" ? "" : "none"
			idx++;
		}
	}
//-->

Thanks for any help I can receive on this

ZipperZZ

(\Code)

use (/code)

can you give complete code along with html code, so that i could understand whats going on ?

Edited 3 Years Ago by mike_2000_17: Fixed formatting

I gave you the complete JS but will give it again along with the html. I will list the HTML first then the JS. Thanks NOTE: The JS was generated by MS Frontpage 2003 when I chose BULLETS AND NUMBERS under the FORMAT menu, then tried both NUMBERS (list) and BULLETS (list) where I checked the box to ENABLE COLLAPSIBLE OUTLINES, I then keyed in a list and when I tried to PREVIEW

<html>

<head>
<meta http-equiv="Content-Language" content="en-us">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<script language="JavaScript" fptype="dynamicoutline">
<!--
function dynOutline() {}
//-->
</script>
<script language="JavaScript1.2" fptype="dynamicoutline" src="outline.js">
</script>
<script language="JavaScript1.2" fptype="dynamicoutline" for="document" event="onreadystatechange()">
<!--
initOutline()
//-->
</script>
</head>

<body onclick="dynOutline()" language="Javascript1.2">

<p><img border="0" src="Ext01.JPG" width="568" height="426"></p>
<ol dynamicoutline>
	<li>Description</li>
	<li>2004 Ford F150 Lariat Super Crew Cab</li>
	<li>Four Wheel Drive</li>
	<li>Less than 11,000 original miles</li>
	<li>5.4L Triton V8 Motor</li>
	<li>Automatic Transmission with Lariat console mounted shifter</li>
</ol>
<p>&nbsp;</p>

</body>

</html>
<!--
// See KB article about changing this dynamic HTML
function getControlTag(src)
{
TRok = false
while ("HTML" != src.tagName)
{
if ("IMG" == src.tagName || "FONT" == src.tagName || "A" == src.tagName || "TD" == src.tagName)
TRok = true
if ("LI" == src.tagName)
return src
if ("TR" == src.tagName)
{
if(TRok)
return src
return null
}
src = src.parentElement
}
return null
}
function dynOutlineEnabled(src)
{
while ("BODY" != src.tagName)
{
table = "TABLE" == src.tagName;
if(table && src.getAttribute("border", false) != "0")
return false;
if("OL" == src.tagName || "UL" == src.tagName || table)
{
if(null != src.getAttribute("nodynamicoutline", false))
return false
if(null != src.getAttribute("dynamicoutline", false))
return true
if(mac > 0)
{
var at = src.outerHTML.indexOf("dynamicoutline")
if(at > 0)
{
var gt = src.outerHTML.indexOf(">")
if(at < gt)
return true
}
}
}
src = src.parentElement
}
return false
}
function initCollapse(src)
{
while ("BODY" != src.tagName)
{
table = "TABLE" == src.tagName;
if(table && src.getAttribute("border", false) != "0")
return false;
if("OL" == src.tagName || "UL" == src.tagName || table)
{
if(null != src.getAttribute("initcollapsed", false))
return true
}
src = src.parentElement
}
return false
}
function containedIn(src, dest)
{
if ("!" == src.tagName)
return true
src = getControlTag(src)
if (src == dest)
return true
return false
}
function initOutline()
{
var ms = navigator.appVersion.indexOf("MSIE");
mac = navigator.appVersion.indexOf("Macintosh");
ie4 = (ms>0) && (parseInt(navigator.appVersion.substring(ms+5, ms+6)) >= 4);
if(!ie4)
return;
listTags = new Array()
listTags[0]="UL"
listTags[1]="OL"
listTags[2]="TABLE"
for(j=0;j<listTags.length;j++)
{
tagName=listTags[j]
coll=document.all.tags(tagName)
for(i=0; i<coll.length; i++)
{
if(dynOutlineEnabled(coll[i].parentElement))
{
if(initCollapse(coll[i]))
coll[i].style.display="none"
}
}
} 
} 
function dynOutline()
{
var ms = navigator.appVersion.indexOf("MSIE");
ie4 = (ms>0) && (parseInt(navigator.appVersion.substring(ms+5, ms+6)) >= 4);
if(!ie4)
return;
var src = event.srcElement
src = getControlTag(src)
if (null == src)
return
if (!dynOutlineEnabled(src))
return
var idx = src.sourceIndex+1
while (idx < document.all.length && containedIn(document.all[idx], src))
{
srcTmp = document.all[idx]
tag = srcTmp.tagName
if ("UL" == tag || "OL" == tag || "TABLE" == tag)
srcTmp.style.display = srcTmp.style.display == "none" ? "" : "none"
idx++;
}
}
//-->

Sorry hit wrong key and the post was sent. Anyway when I tried to PREVIEW my list so that I could see if it was collapsible I kept getting the JS errors. I then went to Google and tried what others had posted to try regarding the JS errors. There are other JS's that execute on my machine and seem to do so OK except they now prompt me to RUN DEBUG whenever they run. Again, thanks.

This article has been dead for over six months. Start a new discussion instead.