Avatar billede cyberdude Nybegynder
07. november 2001 - 15:20 Der er 9 kommentarer og
1 løsning

hjælp til modificering af script (nyhed).......

Hejsa!!

Jeg har dette script :

<script language=javascript>
var numguide=Math.round(Math.random()*2)+1;
startRotater();

function startRotater() {
  // IE
  if (navigator.appName == \"Microsoft Internet Explorer\"){
  document.write(\"<span id=rottext>\"+returnstr1()+\"</span>\");
  doshift();
  startnow();
    }else{
  // Netscape
  if (navigator.appName == \"Netscape\"){
document.write(returnstr1());
  }}
}

function returnstr1(){
return \'Nyhed nr. 1\';
}

function returnstr2(){
return \'Nyhed nr. 2\';
}

function returnstr3(){
return \'Nyhed nr. 3\';
}

function startnow(){
window.setInterval(\'doshift()\',5000);
}

function doshift(){
if (numguide<2){
document.all.item(\'rottext\').innerHTML=returnstr2();
numguide=2
}else{
if (numguide<3){
document.all.item(\'rottext\').innerHTML=returnstr3();
numguide=3
}else{
document.all.item(\'rottext\').innerHTML=returnstr1();
numguide=1
}}
return true;
}
</script>

Som det er nu kan de vise 3 nyheder, men jeg vil gerne have det til at vise 6...... jeg har prøvet at rette lidt i det, men så får jeg bare en script fejl :-((
Nogen der kan rette det lidt til, elelr komme med noget vejledning om hvordan jeg selv kan tilføje så det kan \"håndtere\" flere end 3 nyheder....?
Avatar billede jwj Nybegynder
07. november 2001 - 17:00 #1
Test udfaldte af din variabel numguide for at se om den giver det du også forventer (brug alert(numguide)). Du kan jo gange med en større faktor end 2 f.eks. 10 og så tjekke om den er mellem 1-2, 2-4... eller lignende.
Avatar billede cyberdude Nybegynder
07. november 2001 - 17:13 #2
det fatter jeg ikke en meter af.........

Hvor skal jeg indsætte det, og hvad skal det gøre \"godt\" for???
Avatar billede cyberdude Nybegynder
07. november 2001 - 17:14 #3
jeg fatter ikke hvad den der
var numguide=Math.round(Math.random()*2)+1;
Gør.......
Avatar billede cyberdude Nybegynder
07. november 2001 - 17:33 #4
tror nok jeg har fået det til at virke... jeg skal selvf. huske at sætte......

numguide=1
}}}
return true;

før var der kun 2x } men jeg \"åbner\" jo en mere, og den skal selvf. lukkes igen :-))
Avatar billede Slettet bruger
07. november 2001 - 17:39 #5
<script>
nyDom = document.getElementById;
ie4 = document.all;
ns4 = document.layers;

nyheder = new Array();
nyheder[0] = \"Nyhed nr. 1\";
nyheder[1] = \"Nyhed nr. 2\";
nyheder[2] = \"Nyhed nr. 3\";
nyheder[3] = \"Nyhed nr. 4\";
nyheder[4] = \"Nyhed nr. 5\";
nyheder[5] = \"Nyhed nr. 6\";

tilf = Math.floor(Math.random() * nyheder.length);

startRotator() {
if (nyDom || ie4) document.write(\'<span id=\"rottext\">\' + nyheder[tilf] + \'</span>\');
else if (ns4) document.write(\'<layer id=\"nsrottext\">\' + nyheder[tilf] + \'</layer>\');
setTimeout(\"doshift()\",5000);
}

function doshift() {
tilf = (tilf + 1 == nyheder.length) ? 0 : tilf + 1;
if (nyDom) document.getElementById(\"rottext\").innerHTML = nyheder[tilf];
else if (ie4) document.all[\"rottext\"].innerHTML = nyheder[tilf];
else if (ns4) document.nsrottext.document.write(nyheder[tilf]);
}
</script>
Avatar billede Slettet bruger
07. november 2001 - 17:42 #6
Og så skal du lige kalde startRotator() i slutningen af scriptet.

Med mit script kan du helt selv udvide og indskrænke nyhedslisten; scriptet vil stadigvæk virke.
Hvis du ikke vil have, at scriptet skal starte med en tilfældig nyhed som nu, så udskift denne linje:
tilf = Math.floor(Math.random() * nyheder.length);
med:
tilf = 0;
hvor 0 så repræsenterer den nyhed, som du vil starte med at vise!
Avatar billede Slettet bruger
07. november 2001 - 17:50 #7
Der er lige to fejl i mit script! SORRY! Her er det reviderede script; det er så til gengæld også gennemtestet! :-)

<html>
<head>
<script>
nyDom = document.getElementById;
ie4 = document.all;
ns4 = document.layers;

nyheder = new Array();
nyheder[0] = \"Nyhed nr. 1\";
nyheder[1] = \"Nyhed nr. 2\";
nyheder[2] = \"Nyhed nr. 3\";
nyheder[3] = \"Nyhed nr. 4\";
nyheder[4] = \"Nyhed nr. 5\";
nyheder[5] = \"Nyhed nr. 6\";

tilf = Math.floor(Math.random() * nyheder.length);

function startRotator() {
if (nyDom || ie4) document.write(\'<span id=\"rottext\">\' + nyheder[tilf] + \'</span>\');
else if (ns4) document.write(\'<layer id=\"nsrottext\">\' + nyheder[tilf] + \'</layer>\');
setTimeout(\"doshift();\",5000);
}

function doshift() {
tilf = (tilf + 1 == nyheder.length) ? 0 : tilf + 1;
if (nyDom) document.getElementById(\"rottext\").innerHTML = nyheder[tilf];
else if (ie4) document.all[\"rottext\"].innerHTML = nyheder[tilf];
else if (ns4) document.nsrottext.document.write(nyheder[tilf]);
setTimeout(\"doshift();\",5000);
}
</script>
</head>
<body>
<script>
startRotator();
</script>
</body>
</html>

(Det er sat ind i et HTML-dokument)
Avatar billede cyberdude Nybegynder
07. november 2001 - 19:47 #8
takker, det funger perfekt!
Avatar billede Slettet bruger
08. november 2001 - 11:59 #9
Desuden virker mit script på samme måde i NS4+ og IE4+ i modsætning til dit første.
Men tak for points! :-)
Avatar billede cyberdude Nybegynder
08. november 2001 - 12:36 #10
så lidt... :-))
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester