Javascript function onclick

Status
Niet open voor verdere reacties.

scoobasteve

Gebruiker
Lid geworden
20 jul 2010
Berichten
6
Hallo, ik laat een plaatje zien met de volgende javascript code:

[JS]OA_show(1);[/JS]

Maar nu wil ik het plaatje laten zien door middel van klikken op een button. Ik dacht zoiets als:

[JS]<input type="button" value="Show Image" onClick="OA_show(1);">[/JS]

Dit zorgt er echter voor dat de hele pagina verdwijnt en je alleen het plaatje ziet in een wit scherm. Alsof de pagina reload, maar je ziet geen verandering in de adresbalk. Ik wil gewoon dat het plaatje verschijnt in de juiste div ipv dat de hele pagina reload.

Kan iemand me helpen?
 
handig als je dan ook de code van OA_show() geeft... ;)

Ja, dat wilde ik doen, maar ik weet die code dus niet precies.. Het gaat namelijk om een banner die ik oproep met OA_show();

Ik embed wel een bestand in mijn <head> waar je misschien wat mee kan. De code daarvan is als volgt:
[JS] if (typeof(OA_zones) != 'undefined') {
var OA_zoneids = '';
for (var zonename in OA_zones) OA_zoneids += escape(zonename+'=' + OA_zones[zonename] + "|");
OA_zoneids += '&amp;nz=1';
} else {
var OA_zoneids = escape('1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|18|19|20|21|22|24');
}

if (typeof(OA_source) == 'undefined') { OA_source = ''; }
var OA_p=location.protocol=='https:'?'https://ads.yourdomain.com/www/delivery/spc.php':'http://ads.yourdomain.com/www/delivery/spc.php';
var OA_r=Math.floor(Math.random()*99999999);
OA_output = new Array();

var OA_spc="<"+"script type='text/javascript' ";
OA_spc+="src='"+OA_p+"?zones="+OA_zoneids;
OA_spc+="&amp;source="+escape(OA_source)+"&amp;r="+OA_r;
OA_spc+=(document.charset ? '&amp;charset='+document.charset : (document.characterSet ? '&amp;charset='+document.characterSet : ''));

if (window.location) OA_spc+="&amp;loc="+escape(window.location);
if (document.referrer) OA_spc+="&amp;referer="+escape(document.referrer);
OA_spc+="'><"+"/script>";
document.write(OA_spc);

function OA_show(name) {
if (typeof(OA_output[name]) == 'undefined') {
return;
} else {
document.write(OA_output[name]);
}
}

function OA_showpop(name) {
zones = window.OA_zones ? window.OA_zones : false;
var zoneid = name;
if (typeof(window.OA_zones) != 'undefined') {
if (typeof(zones[name]) == 'undefined') {
return;
}
zoneid = zones[name];
}

OA_p=location.protocol=='https:'?'https://ads.yourdomain.com/www/delivery/apu.php':'http://ads.yourdomain.com/www/delivery/apu.php';

var OA_pop="<"+"script type='text/javascript' ";
OA_pop+="src='"+OA_p+"?zoneid="+zoneid;
OA_pop+="&amp;source="+escape(OA_source)+"&amp;r="+OA_r;
if (window.location) OA_pop+="&amp;loc="+escape(window.location);
if (document.referrer) OA_pop+="&amp;referer="+escape(document.referrer);
OA_pop+="'><"+"/script>";

document.write(OA_pop);
}
var OA_fo = '';
OA_fo += "<"+"script type=\'text/javascript\' src=\'http://ads.yourdomain.com/www/delivery/fl.js\'><"+"/script>\n";
document.write(OA_fo);

[/JS]

Waarin het gaat om deze functie:
[JS]function OA_show(name) {
if (typeof(OA_output[name]) == 'undefined') {
return;
} else {
document.write(OA_output[name]);
}
}
[/JS]
 
Laatst bewerkt:
Ja, regel 26 / 5:
[JS]document.write[/JS]
dit schrijft; maar als je pagina al geladen is, maakt ie een nieuwe pagina aan.

je wil iets van een nieuwe pagina maken, en daar het plaatje in schrijven. Of, nog beter, wat WIL je eigenlijk?
 
Wat ik wil is, op een willekeurig moment een nieuwe banner tonen door OA_show(); op te roepen.
Of dat nou gebeurt als de gebruiker op een knop klikt, of om de zoveel secondes.

Je merkt inderdaad goed op dat er een nieuwe pagina geschreven wordt. Maar dat is juist niet wat ik wil :)

De pagina moet niet herladen, alleen de banner.

De banner staat in een div. Is het misschien een idee om de functie IN de div te schrijven?
Zoiets als [JS]getElementById("banner").OA_show();[/JS]
Ik krijg dat alleen niet aan de praat.
 
[JS]function OA_show(name) {
if (typeof(OA_output[name]) == 'undefined') {
return;
} else {
document.write(OA_output[name]);
}
}[/JS]
--->[JS]function OA_show(name) {
if (typeof(OA_output[name]) == 'undefined') {
return;
} else {
document.getElementById('banner').innerHTML = OA_output[name]; // oid
}
}[/JS]Maarum, mischien is het een idee om je script te ditchen een een nieuwe te schrijven :)
 
Wow, volgens mij heb je net DE oplossing gevonden.
Dit ziet er naar uit dat het werkt. Ik ga morgenochtend nog even verder testen.

Thanks man!

ps. Ik zit vast aan dit script, omdat het werkt via een bannersysteem dat alle clicks etc. meet.
 
Sorry dat ik dit topic weer omhoog haal, maar ik ben er nog niet helemaal.

Bovenstaande werkt namelijk voor gif banners, maar een Flashbanner wordt niet getoond.
Waarschijnlijk omdat een flashobject niet IN innerHTML gezet kan worden.

Is hier een andere methode voor?

Of is er een manier om document.write() naar een bepaalde div te sturen ipv de hele pagina?
 
Laatst bewerkt:
Hoi,

in principe ligt het er dus aan wat de OA_output[name]; doet. Flash zou waarschijnlijk een <object> code geven? Je moet maar eens de OA_output[name]; alert()-en en de output hier zetten.
 
Bedankt voor je hulp. Ik heb besloten om met een iframe te werken en die te herladen met een Javascript:

[JS]function switchAd(id) {

var randomNum = Math.floor(Math.random()*99999999999);
var newAd = "http://mydomain.com/www/delivery/afr.php?zoneid=" + id + "&amp;cb=" + randomNum;

document.all.myIframe.src= newAd;

}
[/JS]

Misschien niet supernetjes, maar het werkt wel. Hoef ik in ieder geval niet meer te ***ten in de Javascript van het bannersysteem.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan