Avatar billede bollocks Nybegynder
14. december 2001 - 16:22 Der er 7 kommentarer og
1 løsning

Tilfældige citater i en webwriter

Jeg har følgende kode på min hjemmeside. Og har nu endelig fået citaterne til at komme i vilkårlig rækkefølge. Problemet er hvordan gør jeg hvis det kun er ét citat der skal vises af gangen, og det skal blive stående indtil siden bliver opdateret. Og først der bliver der vist et nyt tilfældigt citat? Had skal sættes ind i koden?
<html>
<head>
<link rel=\"stylesheet\" type=\"text/css\" href=\"style2.css\">

<META NAME=\"Generator\" CONTENT=\"Stone\'s WebWriter 3\">
<Style type=\"text/css\">
#tickertape{
    position:relative;
    layer-background-color:black;
    text-align: center;
    height:50;
    width:290;
    vertical-align:middle;
}

#subtickertape{
    background-color:black;
    position:absolute;
    left:0;
    top:0;
    border: 1px solid black;
    width:220;
    height:50;
    text-align: center;
    vertical-align:middle;
}

.subtickertapefont{
top:0;
font:bold 12px Tahoma;
text-decoration:none;
color:white;
text-align: center;
}

.subtickertapefont a{
top:0;
color:white;
text-decoration:none;
text-align: center;
}
</style>

<Script Language=\"Javascript\"> <!-- //>

var debugOn = true;
function debug( str ) {
    if ( debugOn ) debugOn = confirm( str );
}; //end debug( string )

var ns4 = (document.layers)? true : false;
var ie  = (document.all) ? true : false;
var ns6 = (document.getElementById)? true : false;
var opera = (navigator.appName.indexOf(\'Opera\')>=0) ? true : false;
//debug( \"ns4:\"+ns4 +\" ie:\"+ie +\" ns6:\"+ns6 +\" Opera:\"+opera );

// --> </script>
</head>

<body onload=\"if(ie||ns4||ns6){regenerate2();update()}\">

<Script Language=\"Javascript\"> <!-- // det skader aldrig og KAN hjælpe

var speed=5000

var news = new Array()
news[0]=\'Her er den f&oslash;rste nyhed.<br>Meget interresant\';
news[1]=\'anden nyhed.<br>en h&oslash;ne i Sm&oslash;rumnedre har mistet en fjer\';
news[2]=\'tredie nyhed er helt ligegyldig men tester hvad der sker hvis linien er lang\';
news[3]=\'fjerde nyhed er til geng&aelig;ld yderst sp&aelig;ndenden\';
news[4]=\'Alle dem med rødt tøj på<br> - de skal lige op og stå<br>B. Madsen - Cand. pæd.\';
//osv.  indsæt dine egne nyheder.

var tmp,i,j;
for (i=news.length; i>0;  ) {
    tmp = news[ j = Math.floor( Math.random()*i-- ) ];
    news[j] = news[i];
    news[i] = tmp;
} // nu står elementerne i news arrayet i en helt tilfeldig rækkefølge.

if( ( ie || ns4 || ns6 || opera) && navigator.userAgent.indexOf(\'Win\')!= -1) {
document.write(\'<div id=\"tickertape\" align=\"center\"><div id=\"subtickertape\" class=\"subtickertapefont\" align=\"center\">\'+news[news.length-1]+\'</div></div>\')
}
var i = 0;
var tickerobject;            // i regenerate2() så den først sættes onload
var inc, step, tmp;          // \\
var sred, sgrn, sblu;        //  > erklæeres som variable i dette objekt
var ered, egrn, eblu;        // /

function regenerate() {
    window.location.reload()
}
function regenerate2(){
    if (ie) {
        tickerobject=document.all.subtickertape.style
    } else
    if (ns4) {
        tickerobject=document.tickertape.document
        setTimeout(\"window.onresize=regenerate\",450);
    } else
    if (ns6||opera) {
        tickerobject=document.getElementById(\"subtickertape\").style
    }
//debug( \"tickerobjedct is: \" +tickerobject );
}

var tabStart = \'<t\\able width=\"100%\" border=0 align=\"center\"><tr><td align=\"center\" valign=\"top\"><s\\pan class=\"subtickertapefont\">\'
var tabSlut  = \'</s\\pan></td></tr></t\\able>\'

function update(){
    BgFade(0xff,0xff,0xff,0x00,0x00,0x00,10);
//debug( news[i] );
    if (ns4){
        document.tickertape.document.subtickertape.document.write(tabStart
                                                        +news[i]+tabSlut);
        document.tickertape.document.subtickertape.document.close()
    } else
    if (ie){
        document.all.subtickertape.innerHTML=tabStart+news[i]+tabSlut;
    } else
    if (ns6||opera){
        var xxelm = document.getElementById(\"subtickertape\")
//debug( \"ns6+Opera \"+xxelm.id+\"\\n\"+news[i] );
        xxelm.innerHTML=tabStart+news[i]+tabSlut;
    }

    if ( ++i>=news.length ) i=0;

    setTimeout(\"update()\",speed)
}

function BgFade(red1, grn1, blu1, red2, grn2, blu2, steps) {
    sred = red1; sgrn = grn1; sblu = blu1;
    ered = red2; egrn = grn2; eblu = blu2;
    inc = steps;
    step = 0;
    RunFader();
};

function RunFader() {
    var epct = step/inc;
    var spct = 1 - epct;
    if (ns4) {
        tickerobject.bgColor =
            Math.floor(sred * spct + ered * epct)*256*256 +
            Math.floor(sgrn * spct + egrn * epct)*256 +
            Math.floor(sblu * spct + eblu * epct);
    } else
    if ( opera ) {
        tickerobject.background = \"rgb(\" +
            Math.floor(sred * spct + ered * epct) +\",\" +
            Math.floor(sgrn * spct + egrn * epct) +\",\" +
            Math.floor(sblu * spct + eblu * epct) +\")\";
    } else
    if(ie||ns6) {    // Jeg mener  \'rgb(rød,grøn,blå)\' er mere korrekt
        tickerobject.backgroundColor = \"rgb(\" +
            Math.floor(sred * spct + ered * epct) +\",\" +
            Math.floor(sgrn * spct + egrn * epct) +\",\" +
            Math.floor(sblu * spct + eblu * epct) +\")\";
    }

    if ( ++step <= inc ) setTimeout(\'RunFader()\',100);
}

// --> </script> 


</body>
Avatar billede sajbar Nybegynder
14. december 2001 - 16:25 #1
du behøver ikke få dit indhold i dit array til at stå i en vilkårelig rækkefølge
du kan bare gennere et tal som ikke er størrer end det antal pladser som er i dit array
derefter beder du den bare om at skrive det citat ud som står i på den plads i det array med din citat\'er...
Avatar billede bollocks Nybegynder
14. december 2001 - 16:34 #2
Ikke forstået
Avatar billede sajbar Nybegynder
14. december 2001 - 16:38 #3
altså
du finder størrelsen på dit array
den størrelse ligger du over i en variable
så vælger du et tilfældig tal med
int j = Math.floor( Math.random()*i-- )
og så laver du en document.write(news[j])
så skriver den det ud som står på plads nummer j...
Avatar billede bollocks Nybegynder
14. december 2001 - 16:44 #4
Prøv at vise mig koden
Avatar billede jakoba Nybegynder
14. december 2001 - 16:45 #5
sidst i funktionen update står der en linie:
    setTimeout(\"update()\",speed)

hvis du fjerner den bliver første citat bare stående indtil der hentes ny side.

sajbar >> ja det er nødvendigt at blande hele arrayet, men det skader såmænd heller ikke.
Avatar billede bollocks Nybegynder
14. december 2001 - 16:54 #6
Ja, jeg ville ikke ulejlige dig igen jakoba, men du sagde lige hvad jeg havde brug for. Endnu engang - tak for hjælpen. Opret lige et svar, så du kan få dine point.
Avatar billede jakoba Nybegynder
14. december 2001 - 17:10 #7
ok da :-)

Man du kan roligt være lidt mere næring med pointsene. 150 er allerede rigeligt.

mvh JakobA
Avatar billede bollocks Nybegynder
14. december 2001 - 17:12 #8
Ja, vi skal jo ikke have inflation, men du skal da have de point der er lovet.
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