anoniem Geplaatst: 3 maart 2002 Delen Geplaatst: 3 maart 2002 Bij het bouwen van een pagina wil ik in een bepaald gebied tekst laten veranderen aan de hand van buttons. Deze tekst kan ook wat langer zijn, waarbij de gebruiker door scroll-knopjes aan te klikken door de tekst scrollt. Ik heb hiervoor wat scripts opgezocht op het web en zelf wat veranderingen aangebracht. Alles werkt nu, alleen kan ik in de tekst eventuele HTML code niet actief krijgen: hij plant de tekst letterlijk neer. Wie weet hier een oplossing voor? De tekst die ik nu aan variabelen toe ken, zou ik graag in aparte files willen hebben. Hoe? De code (gestript, maar tot zover wel werkend) heb ik even hieronder gezet: <html> <head> <title>test</title> <style type="text/css"> <!-- Definieer positie text_window --> #divScrollTextCont {position:absolute; left:16px; top:327px; width:463px; height:63px; clip:rect(0px 463px 63px 0px); overflow:hidden; visibility:hidden;} <!-- Definieer positie text_within_window --> #divText {position:absolute; left:0px; top:0px;} </style> <script language="JavaScript" type="text/javascript"> <!-- function browsercheck(){ this.ver=navigator.appVersion this.agent=navigator.userAgent this.dom=document.getElementById?1:0 this.opera5=this.agent.indexOf("Opera 5")>-1 this.ie5=(this.ver.indexOf("MSIE 5")>-1 && this.dom && !this.opera5)?1:0; this.ie6=(this.ver.indexOf("MSIE 6")>-1 && this.dom && !this.opera5)?1:0; this.ie4=(document.all && !this.dom && !this.opera5)?1:0; this.ie=this.ie4||this.ie5||this.ie6 this.mac=this.agent.indexOf("Mac")>-1 this.ns6=(this.dom && parseInt(this.ver) >= 5) ?1:0; this.ns4=(document.layers && !this.dom)?1:0; this.browser=(this.ie6 || this.ie5 || this.ie4 || this.ns4 || this.ns6 || this.opera5) return this } var browser=new browsercheck() //Speed lager:hogere snelheid var speed = 30 //Enkele vars var loop, timer, start_x, start_y var started = false //maak object afhankelijk van gebruikte browser function makeObj(obj,nest){ nest=(!nest) ? "":'document.'+nest+'.' this.el=browser.dom?document.getElementById(obj):browser.ie4?document.all[obj]:browser.ns4?eval(nest+'document.'+obj):0; this.css=browser.dom?document.getElementById(obj).style:browser.ie4?document.all[obj].style:browser.ns4?eval(nest+'document.'+obj):0; this.scrollHeight=browser.ns4?this.css.document.height:this.el.offsetHeight this.clipHeight=browser.ns4?this.css.clip.height:this.el.offsetHeight this.up=goUp;this.down=goDown; this.moveIt=moveIt; this.x=0; this.y=0; this.obj = obj + "Object" eval(this.obj + "=this") return this } // Bij sommige browsers 'px' toevoegen. var px = browser.ns4||window.opera?"":"px"; function moveIt(x,y){ this.x = x this.y = y this.css.left = this.x+px this.css.top = this.y+px } //Scroll omhoog function goDown(move){ if (!started && loop){ started = true start_x = this.x start_y = this.y } if (this.y>-this.scrollHeight+oCont.clipHeight){ this.moveIt(0,this.y-move) if (loop) setTimeout(this.obj+".down("+move+")",speed) } if (Math.abs(start_y-this.y) > 40){ loop = false started = false } } //Scroll omlaag function goUp(move){ if (!started && loop){ started = true start_x = this.x start_y = this.y } if (this.y<0){ this.moveIt(0,this.y-move) if (loop) setTimeout(this.obj+".up("+move+")",speed) } if (Math.abs(start_y-this.y) > 40){ loop = false started = false } } //Aanroep scroll functies. Bovendien checken of pagina geladen is. function scroll(speed){ if (scrolltextLoaded){ loop = true; if (speed>0) oScroll.down(speed) else oScroll.up(speed) } } //Maak het object var scrolltextLoaded = false function scrolltextInit(){ oCont = new makeObj('divScrollTextCont') oScroll = new makeObj('divText','divScrollTextCont') oScroll.moveIt(0,0) oCont.css.visibility = "visible" scrolltextLoaded = true } var tekst_no=1, max_tekst=5; tekst = new String(max_tekst); tekst[1] = "Tekst 1 zonder niks"; tekst[2] = "tekst 2 met een <BR> en nog een regel"; tekst[3] = 'tekst 3 zou een <a href="andere pagina.html">anker </a> ook werken?'; tekst[4] = "tekst 4 en nog <B>wat onzin </B>"; tekst[5] = "tekst 5 etc."; // Maak functie voor wisselen van tekst function text(j){ if (document.all){ // IE CODE objCount = document.getElementById('divText'); objCount.innerText=tekst[j]; } else{ // MOZILLA & NETSCAPE CODE document.getElementById("divText").childNodes[0].nodeValue=tekst[j]; } } // Maak verander functie function textchange(i){ text(i); scrolltextInit(); } // Maak init functie function textInit(){ text(1); scrolltextInit(); } //Roep init aan als browser ok is... if (browser.browser) onload = textInit // --> </SCRIPT> </head> <body bgcolor="#AFC042" text="#000000"> <font face=" Arial, Verdana, Helvetica, sans-serif" size="2"> <div id="divScrollTextCont"> <div id="divText"> </div> </div> <a HREF="javascript:textchange(1)" >tekst 1</a><BR> <a HREF="javascript:textchange(2)" >tekst 2</a><BR> <a HREF="javascript:textchange(3)" >tekst 3</a><BR> <a HREF="javascript:textchange(4)" >tekst 4</a><BR> <a HREF="javascript:textchange(5)" >tekst 5</a><BR> </body> </html> Alvast bedankt voor het meedenken, misschien zijn er ook wel compleet andere oplossingen, maar ik wil de zaak graag wel graag werkend hebben met diverse browers. Gerrit Brouwer Quote Link naar reactie
anoniem Geplaatst: 3 maart 2002 Auteur Delen Geplaatst: 3 maart 2002 Gebruik innerHTML ipv innerText en het werkt iig in IE. DOM-gedoe (voor mozilla) zou je nog even na moeten kijken. Misschien heb je wat aan deze link: [url=http://www.mozilla.org/docs/dom/domref/dom_shortTOC.html]DOM reference[/url] Quote Link naar reactie
anoniem Geplaatst: 4 maart 2002 Auteur Delen Geplaatst: 4 maart 2002 Bedankt voor je snelle reactie. Ik ga nu aan de slag met je suggesties. Gerrit Brouwer Quote Link naar reactie
Aanbevolen berichten
Om een reactie te plaatsen, moet je eerst inloggen