Outline ·
[ Standard ] ·
Linear+
generate webpage from array in js file
|
TSIcedNyior
|
Nov 17 2008, 03:17 AM, updated 18y ago
|
|
Hey guys, Im using a dropdown menu script in a sidebar of this website I'm editing. Im using this script - Any Link Vertical Menu by using a file named dropdown.js and linking it with this code CODE <p align="center"><strong><a href="project.html" onClick="return dropdownmenu(this, event, menu1, '200px')" onMouseout="delayhidemenu()">PROJECTS</a></strong></p>
I was wondering if there was a way to generate the array into a separate page? I want to use it to generate a standard page called project.html so that people who disable javascript can still see the list of projects. This is the contents of the file dropdown.js » Click to show Spoiler - click again to hide... « CODE /*********************************************** * AnyLink Vertical Menu- © Dynamic Drive (www.dynamicdrive.com) * This notice MUST stay intact for legal use * Visit http://www.dynamicdrive.com/ for full source code ***********************************************/
//Contents for menu 1 var menu1=new Array() menu1[0]='<a href="jpn.html">Jabatan Perhutanan Negeri Perak</a>' menu1[1]='<a href="kolejislam.html">Kolej Islam, Kuala Kangsar</a>' menu1[2]='<a href="westinkl.html">The Westin, Kuala Lumpur</a>' var disappeardelay=250 //menu disappear speed onMouseout (in miliseconds) var horizontaloffset=2 //horizontal offset of menu from default location. (0-5 is a good value)
/////No further editting needed
var ie4=document.all var ns6=document.getElementById&&!document.all
if (ie4||ns6) document.write('<div id="dropmenudiv" style="visibility:hidden;width: 200px" onMouseover="clearhidemenu()" onMouseout="dynamichide(event)"></div>')
function getposOffset(what, offsettype){ var totaloffset=(offsettype=="left")? what.offsetLeft : what.offsetTop; var parentEl=what.offsetParent; while (parentEl!=null){ totaloffset=(offsettype=="left")? totaloffset+parentEl.offsetLeft : totaloffset+parentEl.offsetTop; parentEl=parentEl.offsetParent; } return totaloffset; }
function showhide(obj, e, visible, hidden, menuwidth){ if (ie4||ns6) dropmenuobj.style.left=dropmenuobj.style.top=-500 dropmenuobj.widthobj=dropmenuobj.style dropmenuobj.widthobj.width=menuwidth if (e.type=="click" && obj.visibility==hidden || e.type=="mouseover") obj.visibility=visible else if (e.type=="click") obj.visibility=hidden }
function iecompattest(){ return (document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body }
function clearbrowseredge(obj, whichedge){ var edgeoffset=0 if (whichedge=="rightedge"){ var windowedge=ie4 && !window.opera? iecompattest().scrollLeft+iecompattest().clientWidth-15 : window.pageXOffset+window.innerWidth-15 dropmenuobj.contentmeasure=dropmenuobj.offsetWidth if (windowedge-dropmenuobj.x-obj.offsetWidth < dropmenuobj.contentmeasure) edgeoffset=dropmenuobj.contentmeasure+obj.offsetWidth } else{ var topedge=ie4 && !window.opera? iecompattest().scrollTop : window.pageYOffset var windowedge=ie4 && !window.opera? iecompattest().scrollTop+iecompattest().clientHeight-15 : window.pageYOffset+window.innerHeight-18 dropmenuobj.contentmeasure=dropmenuobj.offsetHeight if (windowedge-dropmenuobj.y < dropmenuobj.contentmeasure){ //move menu up? edgeoffset=dropmenuobj.contentmeasure-obj.offsetHeight if ((dropmenuobj.y-topedge)<dropmenuobj.contentmeasure) //up no good either? (position at top of viewable window then) edgeoffset=dropmenuobj.y } } return edgeoffset }
function populatemenu(what){ if (ie4||ns6) dropmenuobj.innerHTML=what.join("") }
function dropdownmenu(obj, e, menucontents, menuwidth){ if (window.event) event.cancelBubble=true else if (e.stopPropagation) e.stopPropagation() clearhidemenu() dropmenuobj=document.getElementById? document.getElementById("dropmenudiv") : dropmenudiv populatemenu(menucontents)
if (ie4||ns6){ showhide(dropmenuobj.style, e, "visible", "hidden", menuwidth) dropmenuobj.x=getposOffset(obj, "left") dropmenuobj.y=getposOffset(obj, "top") dropmenuobj.style.left=dropmenuobj.x-clearbrowseredge(obj, "rightedge")+obj.offsetWidth+horizontaloffset+"px" dropmenuobj.style.top=dropmenuobj.y-clearbrowseredge(obj, "bottomedge")+"px" }
return clickreturnvalue() }
function clickreturnvalue(){ if (ie4||ns6) return false else return true }
function contains_ns6(a, b) { while (b.parentNode) if ((b = b.parentNode) == a) return true; return false; }
function dynamichide(e){ if (ie4&&!dropmenuobj.contains(e.toElement)) delayhidemenu() else if (ns6&&e.currentTarget!= e.relatedTarget&& !contains_ns6(e.currentTarget, e.relatedTarget)) delayhidemenu() }
function hidemenu(e){ if (typeof dropmenuobj!="undefined"){ if (ie4||ns6) dropmenuobj.style.visibility="hidden" } }
function delayhidemenu(){ if (ie4||ns6) delayhide=setTimeout("hidemenu()",disappeardelay) }
function clearhidemenu(){ if (typeof delayhide!="undefined") clearTimeout(delayhide) }
Thanks in advance This post has been edited by IcedNyior: Nov 17 2008, 03:50 AM
|
|
|
|
|
|
djzen
|
Nov 17 2008, 09:45 AM
|
|
you could try alternatives like flash or CSS.
|
|
|
|
|
|
peraduanku
|
Nov 17 2008, 09:57 AM
|
Getting Started

|
agree with djzen, i think if u use css is better try to google around, u may find plenty of tutorial to do it
This post has been edited by peraduanku: Nov 17 2008, 09:58 AM
|
|
|
|
|
|
TSIcedNyior
|
Nov 17 2008, 03:00 PM
|
|
Im not asking ALTERNATIVE solutions like CSS or flash.
nvm i find a way to workaround it. topic closed
This post has been edited by IcedNyior: Nov 17 2008, 03:20 PM
|
|
|
|
|