[js] var uitlezen

Pagina: 1
Acties:

  • Mark Wegener
  • Registratie: December 2001
  • Laatst online: 03-08 10:43
hi,

ik heb een probleempje in javascript.

file1.js heeft de waarde nodig van de variable ads die in file2.js wordt toegewezen.

hoe zorg ik ervoor dat file1.js weet wat die waarde is?

mvg,
Martin

  • RM-rf
  • Registratie: September 2000
  • Laatst online: 11:01

RM-rf

1 2 3 4 5 7 6 8 9

zorg ervoor dat file2.js eerst wordt ingelezen en dus file1.js daarna.

of gebruik de check-functie na en onload-event (window.onload)

Intelligente mensen zoeken in tijden van crisis naar oplossingen, Idioten zoeken dan schuldigen


  • Mark Wegener
  • Registratie: December 2001
  • Laatst online: 03-08 10:43
dit werkt niet:

document.write (" <script language=\"JavaScript\" src=\"js2.js\"></script> ");

document.write (" "+ads+" ");

  • André
  • Registratie: Maart 2002
  • Laatst online: 01-09 14:07

André

Analytics dude

Hoe ziet die js2.js er uit dan? Want zo zou het moeten werken. Of is die ads misschien geen global variabele?

  • Mark Wegener
  • Registratie: December 2001
  • Laatst online: 03-08 10:43
js2.js:

var AdBrought = true;


js1.js is ipv. d.w het volgende:

<!--
if (typeof(AdBought)=='undefined'){var AdBought;}
if(!AdBought) {
document.write('iframe ads.htm');
}
//-->

  • Mark Wegener
  • Registratie: December 2001
  • Laatst online: 03-08 10:43
iemand enig idee, hoe ik er voor kan zorgen dat js1.js weet dat AdBrought true of false is?

Verwijderd

<script type="text/javascript" src="file2.js"></script>
<script type="text/javascript" src="file1.js"></script>

Waarom zou dit volgens jou niet werken, want je probeert het zelf wel erg raar op te lossen eigenlijk :)

Maar let er wel op dat je je variabelen overal hetzelfde noemt, want AdBrought is niet hetzelfde als AdBought.

[ Voor 0% gewijzigd door Verwijderd op 08-08-2002 18:29 . Reden: typo ]


  • Mark Wegener
  • Registratie: December 2001
  • Laatst online: 03-08 10:43
het is niet zo raar als dat het er uit ziet :)

ik heb een admange systeem geschreven in php die een javascript bestandje uitpoept.

ik heb dan 1 hoofdsponsor, die met defaults werkt, dus als Adbought false is dan moet het script overgaan op een alternatieve sponsor.

vandaar.

  • Mark Wegener
  • Registratie: December 2001
  • Laatst online: 03-08 10:43
maar een praktische optie heb ik dus nog niet :(

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 09:42

gorgi_19

Kruimeltjes zijn weer op :9

Je hebt nog een editknopje, je kan deze anders voortaan gebruiken.. :)

Daarnaast: Waarom laat je PHP je Javascript niet generen, zeker als er maar 1 variabele in staat?

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • RM-rf
  • Registratie: September 2000
  • Laatst online: 11:01

RM-rf

1 2 3 4 5 7 6 8 9

gorgi_19 schreef op 08 augustus 2002 @ 19:05:
Daarnaast: Waarom laat je PHP je Javascript niet generen, zeker als er maar 1 variabele in staat?
sterker nog; plaats je banner gewoon als:

code:
1
<a href="bannerlink.php">[img]"banner.php"[/img]</a>


waarbij banner.php een cookie leest met waardes over laatst getoonde advertentie, en wegschrijft de link van de huidige cookie

lijkt me een stuk eenvoudiger (enige bug zou kunnen zijn als je meerdere vensters open hebt staan waarvan de cookies elkaar overschrijven)

verder vermoed ik gewoon dat de fout in je javascript de missende r in adBought/AdBrought was.

Intelligente mensen zoeken in tijden van crisis naar oplossingen, Idioten zoeken dan schuldigen


  • Mark Wegener
  • Registratie: December 2001
  • Laatst online: 03-08 10:43
:)

Het is niet de R. en het is niet mogelijk om gewoon standaard een bannerlink op te geven omdat ik van adverteerders html stukken krijg.


heeft javascript trouwens niet iets als een include functie zoals php dat heeft?

  • Thijsmans
  • Registratie: Juli 2001
  • Laatst online: 09:22

Thijsmans

⭐⭐⭐⭐⭐ (5/5)

Martin.Duane schreef op 08 augustus 2002 @ 16:01:
dit werkt niet:

document.write (" <script language=\"JavaScript\" src=\"js2.js\"></script> ");

document.write (" "+ads+" ");
Oehoe oehoe, ik weet het :)

* Thijsmans is terug van vakantie en zal eens vertellen wat hier niet klopt

Bij document.write('</script>') zal hij </script> opvatten als het letterlijke einde van het script, dus stopt hij. Wat je moet doen is dit:

code:
1
document.write(' <script type="text/javascript" src="js2.js"> </scr' + 'ipt>');


En btw, de richtlijn is om in Js enkele quotes te gebruiken, en in Html dubbele. Zo voorkom je lelijke ge-escapede quootjes.

* Thijsmans kijkt nog eens naar zijn goddelijkbruine arm... :)

Privacy-adepten vinden op AVGtekst.nl de Nederlandse AVG-tekst voorzien van uitspraken en besluiten.


Verwijderd

Het lijkt een probleem met de volgorde van laden, zoals anderen dat ook al zeiden. Als je zeker wilt zijn dat de scripts geladen zijn, kun je eventueel 2.js toevoegen.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
function addScript(src){
if(document.getElementsByTagName && document.createElement){
var newScript = document.createElement("script");
newScript.type = "text/javascript";
newScript.src = src;
document.getElementsByTagName("head")[0].appendChild(newScript);
}
}

.
.
.

if (typeof(AdBought)=='undefined')
{
addScript('2.js');
var AdBought;
}

  • Mark Wegener
  • Registratie: December 2001
  • Laatst online: 03-08 10:43
beide oplossingen lijken niet te werken. :(

ik heb het maar even online gezet, dan is het wat overzichtelijker.

http://www.xs4all.nl/~mbergen/got/

als het goed is hoor je de primaire banner te zien te krijgen, omdat AdBought = true;

Nogmaals heel erg bedankt voor alle hulp.

  • whitey-d
  • Registratie: April 2000
  • Laatst online: 08-08 19:24
heeft het niets te maken met het feit dat javascript hoofdlettergevoelig is op bepaalde punten en dan met name de eerste letter. Probeer het eens met adBought i.p.v. AdBought.

“Advertising says to people, 'Here's what we've got. Here's what it will do for you. Here's how to get it.'”


  • RM-rf
  • Registratie: September 2000
  • Laatst online: 11:01

RM-rf

1 2 3 4 5 7 6 8 9

:? je hele code is:
code:
1
<script src="secundair.js" language="JavaScript"></script>

oftewel je laad dat hele eerste script niet in..
AdBought wordt niet geset en een typeof() retourneert enkel "undefined" voor variabelen die wel geset zijn, maar geen waarde hebben toegewezen gekregen

in je originele versie, werkt hij hier gewoon wel...
op msie5.2/mac zonder probleem, onder mozilla retoruneert hij beide string:
secundaire bannerprimaire banner
(ik heb wel die escape <!-- en //--> verwijderd, horen niet in extern js-file)

Intelligente mensen zoeken in tijden van crisis naar oplossingen, Idioten zoeken dan schuldigen


  • Annie
  • Registratie: Juni 1999
  • Laatst online: 25-11-2021

Annie

amateur megalomaan

Prammenhanger:
En btw, de richtlijn is om in Js enkele quotes te gebruiken, en in Html dubbele. Zo voorkom je lelijke ge-escapede quootjes.
huh, heb ik iets gemist?
Prammenhanger:
* Annie kijkt nog eens naar zijn goddelijkbruine arm... :)
damn you :(

;)

Today's subliminal thought is:


  • Mark Wegener
  • Registratie: December 2001
  • Laatst online: 03-08 10:43
RM-rf: het is toch mogelijk om het eerste script doormiddel van dat document.write('script scr= blbbab'); te laden voordat de variable nodig is?


edit-
maar bij het origineel zou dat betekenen, dat ik 2 banners pal naast elkaar zou hebben staan :) dat is ook niet de bedoeling

  • RM-rf
  • Registratie: September 2000
  • Laatst online: 11:01

RM-rf

1 2 3 4 5 7 6 8 9

Martin.Duane schreef op 08 augustus 2002 @ 22:24:

maar bij het origineel zou dat betekenen, dat ik 2 banners pal naast elkaar zou hebben staan :) dat is ook niet de bedoeling
mozilla leest het script pas in nadat de pagina is ingeladen, of rendert misschien de pagina al door terwijl het eerste script moet worden ingeladen.

misschien een check-interval dat checked op de geladen adBought.
de document.write schrijft dan een lege img-tag weg, en zodra dit geladen is wordt de gehele advertentie via img.src = 'adv.gif' omgezet (en tevens de link)

Intelligente mensen zoeken in tijden van crisis naar oplossingen, Idioten zoeken dan schuldigen


  • Mark Wegener
  • Registratie: December 2001
  • Laatst online: 03-08 10:43
hmm, een check-interval.

ik durf het bijna niet te vragen, maar hoe doe je dat?

  • RM-rf
  • Registratie: September 2000
  • Laatst online: 11:01

RM-rf

1 2 3 4 5 7 6 8 9

code:
1
2
3
4
5
6
7
function checkVariabele()
{
   if (adBought) {
      _voer_Wat_Uit();
      clearInterval(intervalPointer)
}
var intervalPointer = setInterval("checkVariabele()", 500)

de interval wordt dan iedere 500 millisecondes uitgevoerd, en checked op het true zijn van variabele adBought, zodra dit zo is, voert hij de _voer_Wat_Uit()-functie uit en killed zichzelf (via een pointer, setInterval retouneert een random ID-integer, dat clearInterval gebruikt om de interval te beeindigen)

Intelligente mensen zoeken in tijden van crisis naar oplossingen, Idioten zoeken dan schuldigen


  • Thijsmans
  • Registratie: Juli 2001
  • Laatst online: 09:22

Thijsmans

⭐⭐⭐⭐⭐ (5/5)

Annie schreef op 08 augustus 2002 @ 22:18:
[...]huh, heb ik iets gemist?
He, don't blaim me, ik blaat ook alleen maar Crisp na :P

Het is makkelijker, netter en overzichtelijker. Dus ja, het is mijn richtlijn :)

Just for de lol: 7(8)7 (I love that smiley :) )

Privacy-adepten vinden op AVGtekst.nl de Nederlandse AVG-tekst voorzien van uitspraken en besluiten.


  • Hangloozz
  • Registratie: Juli 1999
  • Laatst online: 13-07 17:24

Hangloozz

{ @$%&# }

Prammenhanger schreef op 08 augustus 2002 @ 21:35:
[...]


* Hangloozz kijkt nog eens naar zijn goddelijkbruine arm... :)
zo, en bij wie heb je die gehaald? ;)

www.jurgroessen.nl


  • Mark Wegener
  • Registratie: December 2001
  • Laatst online: 03-08 10:43
:'( het lijkt niet te werken.

overigens als AdBought false is dan moet er pas wat uitgegevoerd worden, als AdBought namelijk true is dan staat er in het zelfde script ook een banner, en dan moet in het andere deel geen banner verschijnen.

Maar als ik het goed heb kun je dat omwisselen door een ! voor AdBought te zetten, in jou script. Maar dat werkt ook niet, dus ik ben bang dat ik er een andere oplossing voor moet zoeken.

  • RM-rf
  • Registratie: September 2000
  • Laatst online: 11:01

RM-rf

1 2 3 4 5 7 6 8 9

een boolean kent maar twee states; true en false, false is gelijk aan het niet bestaan, alhoewel je misschien kunt checken op typeof(), mogelijk retourneert die "boolean" en kun je deze benutten om te checken of de waarde ge-set is

Intelligente mensen zoeken in tijden van crisis naar oplossingen, Idioten zoeken dan schuldigen

Pagina: 1