Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[JS] globale variable maken met frames

Pagina: 1
Acties:

  • plakbandrol
  • Registratie: Juni 2002
  • Laatst online: 24-11 22:02
Ik heb een pagina met meerdere frames, nou wil ik in het ene frame een waarde aan een variabele kunnen toewijzen, die dan vanuit een ander frame direct op te roepen is..

ik heb nu een extern JS bestand die ik in elk frame aanroep, hierin worden een aantal globale variabelen gedeclareerd, maar als ik een waarde toewijs aan zo'n variabele is hij alleen binnen dat frame beschikbaar

hoe zou ik dit kunnen aanpakken? ik heb via google hier geen elegante oplossing voor kunnen vinden

[ Voor 14% gewijzigd door plakbandrol op 17-08-2007 19:27 ]


Verwijderd

De "globale" scope van een frame is inderdaad het window object. Maar je hebt de properties parent en top, waarmee je de window objecten uit andere frames uit een frameset kunt benaderen.

  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

Je weet hoe je een ander frame moet benaderen met javascript?

Dan kan je ook gewoon een globale variabele benaderen ;) Laat eens zien wat je zelf hebt geprobeerd, want ondanks dat je het mooi verteld, is dit gewoon een scriptrequest zonder 1 letter code van jouw zijde...

Het is eventueel een optie om je javascript variabele in je frameset te plaatsen, zodat je direct via top bij je variabele kan komen.

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


  • plakbandrol
  • Registratie: Juni 2002
  • Laatst online: 24-11 22:02
Mijn post was niet als scriptrequest bedoeld, ik zoek naar een methode of een richting waarin ik moet zoeken om het werkend te krijgen

aangezien de basis opzet vrij simpel is leek me het niet noodzakelijk om code te posten, maar ik zal even een aantal zaken plaatsen

dit is de frameset

code:
1
2
3
4
5
<frameset rows="30,250,*">
  <frame src="nav.php" name="nav_frame" id="nav_frame"/>
  <frame src="timetable.php" name="timetable_frame" id="timetable_frame"/>
  <frame src="properties.php" name="properties_frame" id="properties_frame" />
</frameset>


in alle frames wordt het bestands scripts.js aangeroepen waarin ik op de volgende manier variabelen heb gedeclareerd

code:
1
2
3
4
5
6
7
8
9
10
11
12
var openrows = new Array();

var currently_open_id = "";
var currently_open_size = "";
var currently_open_row = "";
var currently_open_color = "";
var show_time = 2;
var open_tasklist_ids = new Array();

var task_type = "";
var task_viewmode = "";
var task_id = 0;


het aanroepen van functies en toewijzen van variabelen doe ik op de volgende manier
code:
1
2
top.nav_frame.document.getElementById('task_id').value = id;
top.timetable_frame.document.getElementById('contentdivje').innerHTML=xmlhttp.responseText;


Dit werkt allemaal prima, het enige probleem is dus dat als ik een variabele vanuit het ene frame wijzig, hij niet beschikbaar is in het andere frame

Wat ik heb geprobeerd is het volgende, in het bovenste frame (die in principe niet gerefreshed wordt) heb ik een aantal hidden form tags staan, die ik gebruik om de waardes in op te slaan. Elke keer als ik een variabele verander, verander ik de waarde van die form tag, en elke keer als ik de variabele nodig heb lees ik die form tag uit. Deze methode is nogal lomp en omslachtig, en daarom zoek ik een nettere.

[ Voor 13% gewijzigd door plakbandrol op 17-08-2007 19:50 ]


  • plakbandrol
  • Registratie: Juni 2002
  • Laatst online: 24-11 22:02
Verwijderd schreef op vrijdag 17 augustus 2007 @ 19:29:
De "globale" scope van een frame is inderdaad het window object. Maar je hebt de properties parent en top, waarmee je de window objecten uit andere frames uit een frameset kunt benaderen.
dan zou je zoiets krijgen

in plaats van
var testvar = "bla";
wordt het
var top.testvar = "bla";
en dat werkt niet

Verwijderd

wel over variable scope. Wat ik hiermee wilde aanduiden is een verhaal over variables, zodat je ziet dat je laatste quote klets is. doe
JavaScript:
1
top.testvar = "bla";
Pagina: 1