Du må være registrert og logget inn for å kunne legge ut innlegg på freak.no
X
LOGG INN
... eller du kan registrere deg nå
Dette nettstedet er avhengig av annonseinntekter for å holde driften og videre utvikling igang. Vi liker ikke reklame heller, men alternativene er ikke mange. Vær snill å vurder å slå av annonseblokkering, eller å abonnere på en reklamefri utgave av nettstedet.
  1 620
Jeg har laget en slags bot for Directmedia.no med JavaScript, men har noen problemer.

Jeg vil at den skal laste neste side når iframen har loadet, eller det er gått 20 sekunder. Sistnevnte burde jo vært enkelt, men det finnes ingen sleep()-funksjon i JavaScript.

Og jeg greier ikke å endre onload-attributten til iframen med JS, kan det være fordi det er helt feil måte å gjøre det på?

Jeg blir glad hvis noen vet hvordan jeg fikser det

Og hvis jeg setter iframe onload til newurl(); loader den bare directmedia.com om og om igjen, uten å gå videre. onload trigger for tidlig eller noe, ikke vet jeg.

Her er koden: (CSS er fjernet.)

Kode

<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
	<head>
		<title>Directmedia-bot</title>
		<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
		<script type="text/javascript">
			window.onload = init; // Start en funksjon når siden har loadet
			
			var randum;
			var siderloadet = 0;
			
			function init() { // Sett alle standardverdier
				document.getElementById('idfraform').value = 17982701;
				document.getElementById('idtilform').value = 1900000;
				document.getElementById('idfra').innerHTML = 17982701;
				document.getElementById('idtil').innerHTML = 1900000;
				document.getElementById('status').innerHTML = 'Boten er stoppet';
				document.getElementById('melding').innerHTML = '';
				return false;
			}
				
			function start() {
				document.getElementById('iframe').onLoad = 'newurl();';
				newurl();
				return false;
			}
				
			function stopp() {
					document.getElementById('iframe').onLoad = '';
					return false;
			}
			
			function newurl() {
				rand();
				document.getElementById('iframe').src = 'http://www.directmedia.no/goto.php?id=' + randum;
				document.getElementById('url').innerHTML = document.getElementById('iframe').src;
				siderloadet = siderloadet + 1;
				document.getElementById('siderloadet').innerHTML = siderloadet;
				return false;
			}
			
			function change_id_range() {
				document.getElementById('idfra').innerHTML = parseFloat(document.getElementById('idfraform').value);
				document.getElementById('idtil').innerHTML = parseFloat(document.getElementById('idtilform').value);
				document.getElementById('idfraform').value = parseFloat(document.getElementById('idfraform').value);
				document.getElementById('idtilform').value = parseFloat(document.getElementById('idtilform').value);
				return false;
			}
			
			function rand () {
				var fra = parseFloat(document.getElementById('idfra').innerHTML);
				var til = parseFloat(document.getElementById('idtil').innerHTML);
				var range = til - fra;
				var rand = ( Math.floor ( Math.random ( ) * range + 1 ) );
				randum = til - rand;
				return false;
			}
			

			
		</script>
	</head>
	<body>

		<div id="content">
			<h1>Directmedia-bot</h1>
				<h2>Valg</h2>
					<h3>ID-område</h3>
							<p>
								<b>Fra</b> <input type="text" id="idfraform"/>
								<b> til </b> <input type="text" id="idtilform"/>
								<input type="submit" value="Sett" onclick="change_id_range();"/>
							</p>
					<h3>Kontroll</h3>
						<p>
							<input type="submit" value="Start" onclick="start();"/>
							<input type="submit" value="Stopp" onclick="stopp();"/>
							<input type="submit" value="Random" onclick="newurl();"/>
						</p>
						<p id="melding"></p>
					<h3>Status</h3>
						<p>
							<span id="status"></span><br /><br />
							ID-områdvee er fra <b><span id="idfra"></span></b> til <b><span id="idtil"> </span></b><br /><br />
							URL: <span id="url"></span><br /><br />
							Sider loadet: <b><span id="siderloadet"></span></b>
						</p>
				<h2>Iframe</h2>
				<iframe name="iframe" id="iframe" src="http://google.com" onload=""></iframe>
		</div>
	</body>
</html>
(Kopier gjerne over i en editor, det ble litt svært)
Sist endret av Ozma; 31. mai 2007 kl. 20:38.
Alternativet til sleep i javascript er setTimeout, som kaller en funksjon etter gitt tid.
http://developer.mozilla.org/en/docs...dow.setTimeout