Nieuwsbalk in javascript

Status
Niet open voor verdere reacties.

Timmmy

Gebruiker
Lid geworden
1 jun 2009
Berichten
39
Ik probeer voor elkaar te krijgen om een nieuwsbalk op mijn website te krijgen.

HTML:
<marquee id="alertit" style="position:absolute;left:0px;top:0;background-color: #00CCCC" onMouseover="this.scrollAmount=1" onMouseout="this.scrollAmount=speed"></marquee>
<!--Nieuwsbalk in javascript-->
[JS]<script type="text/javascript">

var themsg='<span style="font:18px times new;color:black;"><b>Mijn tekst<b></span>'
var speed=5 //snelheid van scroller (1-10 of meer)
var loops=2 //aantal malen dat de scroller te zien moet zijn... (continu vul je in : "infinite")

function populatescroller(){
var windowwidth="837px" //Breedte van de nieuwsbalk
document.getElementById("alertit").innerHTML=themsg
document.getElementById("alertit").style.width=windowwidth
document.getElementById("alertit").scrollAmount=speed
document.getElementById("alertit").scrollDelay=20
document.getElementById("alertit").loop=loops
document.getElementById("alertit").onfinish=function(){
document.getElementById("alertit").style.visibility="hidden"
}
}

function iecompattest(){
return (document.compatMode!="BackCompat")? document.documentElement : document.body
}

if (document.all && document.getElementById){
window.onload=populatescroller
window.onresize=populatescroller
}

</script>[/JS]

Deze balk werkt alleen in internet explorer en niet in chrome/firefox.

Kan iemand mij misschien vertellen waardoord dat komt en hoe ik dit zou kunnen oplossen? Ik heb zelf niet zoveel kennis van javascript dus dit is een lastig klusje voor mij.

Alvast bedankt!
 
Volgens mij is "document.all" (regel 23) IE-only. Deze controle zal dus mislukken in alle andere browsers waardoor je javascript niet wordt uitgevoerd. Omdat je toch overal "document.getElementById" gebruikt mag je deze regel vervangen door [js]if (document.getElementById)[/js]

[edit]Overigens is de <marquee>-tag geen officiële (door het W3C bedachte) tag. Het is bedacht door MS en o.a. Firefox heeft het overgenomen, maar ik weet niet of alle browsers het ondersteunen. Het kan dus zijn dat het script ook na deze aanpassing niet werkt in bepaalde browsers.[/edit]
 
Laatst bewerkt:
Bedankt! Nu werkt het in firefox/chrome/internet explorer. :thumb:
 
Ik heb het script ook gebruikt, werkt prima.
Maar kan ik inplaats van de tekst in het script ook tekst in een .txt zetten en het .txt file dan uitlezen?
Dat is makkelijker om aan te passen
 
Dan moet je eerst iets verzinnen om de .txt op te halen. Denk aan server-side php, maar opzich kan alleen Javascript ook. Je moet dan even googelen (het magische woord is 'ajax').


:thumb:
 
Ik heb ook een script om dat uit te lezen, maar krijg dat niet gecombineerd met javascript:


EDIT:
Opgelost:

PHP:
$data = file_get_contents("nieuws.txt");

[JS]<script type="text/javascript">

var themsg='<span style="font:18px times new;color:black;"><b><? print_r($data);?><b></span>'
var speed=5 //snelheid van scroller (1-10 of meer)
var loops=2 //aantal malen dat de scroller te zien moet zijn... (continu vul je in : "infinite")

function populatescroller(){
var windowwidth="750" //Breedte van de nieuwsbalk
document.getElementById("alertit").innerHTML=themsg
document.getElementById("alertit").style.width=windowwidth
document.getElementById("alertit").scrollAmount=speed
document.getElementById("alertit").scrollDelay=20
document.getElementById("alertit").loop=loops
document.getElementById("alertit").onfinish=function(){
document.getElementById("alertit").style.visibility="hidden"
}
}

function iecompattest(){
return (document.compatMode!="BackCompat")? document.documentElement : document.body
}

if (document.all && document.getElementById){
window.onload=populatescroller
window.onresize=populatescroller
}

</script>[/JS]
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan