29. september 2003 - 11:24Der er
17 kommentarer og 1 løsning
Skiftende pics evt. i iframe
Hej
Jeg ønsker at køre skiftende reklamer for vores produkter i et lille vindue som skal ligge fast på alle vores sider. Jeg havde forestillet mig at der skullel skiftes mellem 5-10 forskellige små reklamer der alle laves som JPG eller GIF.
Disse reklamer vil jeg placere et og så køre ud på alle vores sider.
Så skal du i dit iframe vise reklame1.htm som så efter 30 sekunder hopper til reklame2.htm. I reklame2.htm skal du henvise til reklame3.htm osv... Indtil reklame10.htm (eller hvor mange du nu har) der viser tilbage til reklame1.htm
Iframe er såmænd en udemærket måde at gøre det på. Så bliver det kun dine bannere der bliver refreshet, og ikke hele siden.
Eksemplet her er taget fra W3C.org hvor du kan finde HTML standarden:
<IFRAME src="foo.html" width="400" height="500" scrolling="auto" frameborder="1"> [Your user agent does not support frames or is currently configured not to display frames. However, you may visit <A href="foo.html">the related document.</A>] </IFRAME>
Oversat til dit eget eksempel kunne det f.eks. se således ud:
<IFRAME src="reklame1.htm" width="400" height="500" scrolling="auto" frameborder="1"> <!-- browseren kan ikke vise IFRAMES, så vi viser så i det mindste en af vores bannere. Den vil så bare IKKE blive refreshet/cyclet. --> <img src="banner1.jpg"> </IFRAME>
width og height skal du naturligvis sætte så det passer med dine behov, og så antages det mere eller mindre at alle dine reklamer har den samme størrelse. Ellers skal der en lidt mere avanceret løsning til.
<script type="text/javascript"> //Angiv alle bannere inde i nedenstående helst i een lang linje banners = ['banner1.jpg',banner2.jpg',banner3.jpg',banner4.jpg',banner5.jpg'];
count = 0;
imgs = new Array();
for(i=0;banners.length>i;i++){ imgs[i] = new Image(); imgs.src = banners[i]; }
function changeBanner(){ document.images['bannerImg'].src = imgs[count++].src; if (count > banners.length)count = 0; } </script>
-- scriptet aktiveres onload:
<body onload="setInterval('changeBanner()',60000"><!-- er sat til at skifte for 60 s.-->
Jeps. Men ligesom Iframes er man så desværre ikke garderet 100%. Der er sikkert en del ældre browsere der ikke følger nutidens standard, og har problemer med koden. Dertil vil det så være påkrævet at JavaScript er slået til for at det virker.
Men sådan har de fleste løsninger jo deres ups and downs.
-- og personligt er jeg holdt op med at understøtte javascript 1.0, og såmænd også v4-browserne, da deres udbredelse er blevet til næsten ingenting ...
Men det er forøvrigt lige præcis derfra ovenstående er understøttet, dvs. hvis man har anskaffet sin browser for 5-6 år siden vil den ovenstående virke !-)
Hmmm. Jeg sidder lige og kigger på dit eksempel...
Jeg kan se at changeBanner bliver kaldt med 60 sekunders forsinkelse, men hvordan bliver den kaldt anden gang, tredje gang, fjerde gang osv...?
Desuden. Begge disse løsninger lægger op til at det samme banner bliver vist som det første hver gang, så måske JavaScript versionen er at foretrække, og den så skal udvides med en randomizer?
nu har jeg prøvet dit script, men kan ikke få det til at virke. Jeg har minimal forstand på scripts, og det er nok det der gør at jeg ikke kan få det til at virke.
Det første billed kommer fint frem, men så sker der ikke mere. Hvor er det man skal aktivere via onload?
Og ved du om man kan sætte en random funktion op på billederne?
Dine javascript funktioner bør altid stå inde i dit HEAD tag, som befinder sig i toppen af dit HTML dokument. Efter dit HTML tag men før dit BODY tag. Onload er en del af dit BODY tag, hvor du f.eks. kan kalde flere javascript funktioner, hvor hvert kald er afsluttet/adskilt med semikolon.
Eks.
<html> <head> <title>Sidens navn</title> <script type="text/javascript"> <!-- Her kommer alt dit JavaScript --> </script> </head> <body onload="funktion1();funktion2();"> Bla bla bla... Alt dit indhold. </body> </html>
Jeg har rettet og testet det. Nu er der også en randomizer. Eneste downside er at den altid vil starte med det samme banner. Men det kan du jo så evt. selv variere fra side til side, ved at rette linien
-- ja, men du havde jo tiden til at gøre det færdigt !-)
-- så behold du bare de points, jeg mangler ik' li'e ...
>>norskov
Man kan sagtens tilføje links til banneret, men den er lidt tricky, da man enten skal ændre en funktionstildeling (øv, det er jeg ikke så glad for !-) eller lave en funktion, som ved hvilke link der hører til hvilket billede ...
-- den sidste er jeg til gengæld god til -- når jeg har tiden ;-(
Synes godt om
Ny brugerNybegynder
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.