Archief - JS: src wisselaar voor iframe

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

noizy

Legacy Member
In mijn site zit een iframe.
En ik zou graag dat om de 10 seconden er in dat iframe een andere src (url) word weergegeven.
Liefst met een JavaScriptje.

noizy

Legacy Member
vb:
je opend de pagina en je ziet in het iframe "url1"
na 10sec verschijnt "url2" in het iframe
na nog is 10sec verschijnt "url3" in het iframe
na nog is 10sec verschijnt terug "url1"

Cakeman

Legacy Member
Je kan dat oplossen door met meta-tags te werken denk ik (binnen de pagina's die in het iframe worden weergegeven).

Ik heb nog nooit met iframes gewerkt, dus ik ben niet zeker of je via javascript naar de id van het iframe kan verwijzen en zo het src attribuut aanpassen.
Dat zal je even moeten proberen denk ik.

Code:
naamvaniframe.src = "nieuwepagina.html";

Edit: nog een kleine tip: door middel van een 'timer' om de x aantal seconden een functie oproepen, doe je in javascript met setTimeout()

Voorbeeld:
Code:
function wisselpaginas() {
    setTimeout("wisselpaginas()", 5000);
}
Deze code zorgt ervoor dat de functie wisselpaginas() om de 5 seconden (5000 milliseconden) wordt uitgevoerd.
Je kan binnen die functie dan een tellertje verhogen en afhankelijk van de waarde van die teller de juiste pagina weergeven.

noizy

Legacy Member
kdenk ni da da zo ga
Ik heb al scripts gezien waarbij een aantal banners om da zoveel seconden verwisselen
dus het is mogelijk om dit in een javascript te doen maar ik kan aan het script niet goed aan uit om het zelf te veranderen.

Code:
<HEAD>
<script language="JavaScript" type="text/JavaScript"><!--
var urlArray = new Array(3); //for URL's, increase size as necessary
var banArray = new Array(3); //for banners, increase size as necessary
var counter = 1;
var url = "http://www.gensys.tk"; //initial URL

//add your necessary URL's
urlArray[0] = "http://www.pielec.tk";
urlArray[1] = "http://www.multic.tk";
urlArray[2] = "http://www.dejeugd-chat.tk";

if(document.images) //pre-load all banner images
{
  for(i = 0; i < 3; i++)
  {
    banArray[i] = new Image(500, 60);
    banArray[i].src = "banner" + (i+1) + ".jpg";
  }
}


function changeBanner() //banner changer function
{
  if(counter > 2)
   counter = 0;

  document.banner.src = banArray[counter].src; //sets a new banner

  url = urlArray[counter]; //sets a new URL to the banner
  counter++; //increase the counter for the next banner
}

//calls the changeBanner() function every 3 seconds
//change the timer as necessary (minutes * 60000) or (seconds * 1000)
var timer = window.setInterval("changeBanner()", 3000);

//-->
</script>
</HEAD>

<BODY>
<a href="#" onClick="window.open(url,'BannerWin');">
<img src="banner1.jpg" width=468 height=60 border=0 name="banner"></a>
</body>
dit moetek dus hebben maar dan dat de src van een iframe verandert ipv dat er een andere banner komt

stoffer

Legacy Member
Gewoon een idee (al dan niet verkeerd)

In elke pagina die ge in uw iframe wilt zet get dit:
Code:
<meta http-equiv='Refresh' content='Aantal seconden;url=urlpaginaX'>

Cakeman

Legacy Member
Code:
<html>
<head>
	<title>iFrame Switcher</title>
	<script type="text/javascript">
		function initLoop() {
			var teller = 0;
			var urls = new Array();
			urls[0] = "eerstepagina.html";
			urls[1] = "tweedepagina.html";
			urls[2] = "derdepagina.html";
			urls[3] = "vierdepagina.html";
			setTimeout("changeFrame()", 10000);
		}
		function changeFrame() {
			teller++;
			if(teller >= urls.length) teller = 0;
			document.jouwframe.src = urls[teller];
			setTimeout("changeFrame()", 10000);	
		}
	</script>
</head>
<body onload="initLoop()">
	<iframe id="jouwframe" src="eerstepagina.html"></iframe>
</body>
</html>
Dit zou moeten werken. Ik heb het niet getest, maar ik denk dat het klopt.

Uitleg:
<body onload="initLoop()">
Dit zorgt ervoor dat bij het laden van de pagina de functie initLoop() uitgevoerd wordt.

initLoop()
Deze functie maakt een teller variabele aan en zet deze op 0. Hierna worden de pagina's die in het iframe moeten komen, in een array gezet. Wil je meerdere pagina's, kan je ze er gewoon aan toevoegen.
Vervolgens gaat deze functie met behulp van setTimeout() na 10 seconden (10000 milliseconden) de functie changeFrame() aanroepen.

changeFrame()
Deze functie gaat de waarde van de variabele teller met 1 verhogen. Vervolgens wordt gekeken of deze teller evenhoog of hoger is dan lengte van de array die de urls bevat. Indien dat zo is, wordt de teller terug op 0 gezet.
Hierna wordt uit de array met urls de juiste url gehaald (op basis van de teller) en deze wordt dan als src voor het iframe gebruikt.
Uiteindelijk zal de functie zichzelf na 10 seconden opnieuw aanroepen.

noizy

Legacy Member
kzalet zeker is proberen maar met deze code gaat het ook :) (eerder gegeven)
Code:
<meta http-equiv='Refresh' content='10;url=ledbanner.htm'>
jouw code is idd intresant als je buitenstaande pagina's moet displayen in het iframe waar je dus geen meta tag in kan zette :)
Komt later nog wel eens van pas ;)

Cakeman

Legacy Member
Stel nu dat je de oplossing met de meta-tags gaat gebruiken en na een weekje ofzo wil je enkele pagina's toevoegen, van plaats veranderen of verwijderen. Dan ga je in een heel aantal pagina's de meta-tag moeten aanpassen.

Wanneer je mijn scriptje gebruikt moet je in één document één array aanpassen.

noizy

Legacy Member
twerkt ni :( de eerste geeftem uiteraard maar na 5sec geeftem error on page
Code:
<head>
<script type="text/javascript">
function initLoop() { 
	var teller = 0;
	var urls = new Array();
	urls[0] = "banner.htm";
	urls[1] = "ParticleText.htm";
	urls[2] = "ledbanner.htm";
	urls[3] = "gloeibanner.htm";
	setTimeout("changeFrame()", 5000);
}

function changeFrame() { 
	teller++;
	if(teller >= urls.length) teller = 0;
	document.banner.src = urls[teller];
	setTimeout("changeFrame()", 10000);	
}
</script>
</head>

<body bgcolor="EEEEEE" text="909090" link="aaaa90" alink="cccc90" vlink="aaaa90" scroll="no" onload="initLoop()">
<iframe id="banner" src="banner.htm" frameborder="0" height="60" width="468"></iframe>
</body>
volgens mij zou het idd moete werke ze mor blijkbaar tog ni
mss kan iemand da is uiteste

Lashknife

Legacy Member
document.banner.src :wtf:

document.getElementById("banner").src :niceone:

Cakeman

Legacy Member
Hmm, misschien zijn teller en urls[] enkel bekend binnen de functie initLoop. Probeer ze eens te declareren voor de functies.

Dus:
Code:
<script type="text/javascript">

  var teller = 0;
  var urls = new Array();

  function initLoop() { 
    urls[0] = "banner.htm";
    urls[1] = "ParticleText.htm";
    urls[2] = "ledbanner.htm";
    urls[3] = "gloeibanner.htm";
    setTimeout("changeFrame()", 5000);
  }

  function changeFrame() { 
    teller++;
    if(teller >= urls.length) teller = 0;
    document.getElementById('banner').src = urls[teller];
    setTimeout("changeFrame()", 10000);
  }
</script>

Forceflow

Legacy Member
Zeg, alst is om gewoon banners te displayen zet je daar beter een flash movie eej ...

Dan kan em ze allemaal in ene keer preloaden en op regelmatige intervallen tonen, wordt het updaten makkelijker .... en hebt ge geen problemen met Iframes die durven lastig doen in Firefox/Opera.

just an idea.

noizy

Legacy Member
1. ik kan geen flash
2. voor gewone wisselende banners heb ook wel een script maar het zijn geen gewone banners tzijn java aplets die als banner dienen. dus hadek geen andere keus dan het met een iframe te doen
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan