Pagina 1 van 1
javascript oop, frames
Geplaatst: 08 jun 2007, 01:15
door BungaMan
heb een frameset pagina met 2 frames (name=boven en name=onder)
in frame "boven" een javascript met een custom object
function MijnObject()
{
this.bla = 'tekst';
}
nu wil ik dit in frame "onder" gebruiken via
var testje = new parent.boven.MijnObject();
maar dan krijg ik de foutmelding dat het geen constructor is.
terwijl in frame "boven" de volgende code wel werkt
var testje = new MijnObject();
iemand een idee?
Geplaatst: 08 jun 2007, 07:59
door wem
afstappen van javascript en frames?
Geplaatst: 08 jun 2007, 10:40
door BungaMan
nope, dat object moet blijven bestaan overheen verschillende pagina's.
Geplaatst: 08 jun 2007, 10:59
door crapiecorn
Die methode voor uw functie te instantiëren lijkt me niet zo kosher, onmogelijk zelfs.
Geplaatst: 08 jun 2007, 11:28
door Astralon
Waarschijnlijk zie ik iets over het hoofd maar ik probeer het toch maar.
Je plaats je script in een appart bestand (myscript.js) en roept die naar behoefte aan in beide frames?
Code: Selecteer alles
<script src="js/myscript.js" type="text/javascript"></script>
Geplaatst: 08 jun 2007, 12:10
door BungaMan
crapiecorn schreef:
Die methode voor uw functie te instantiëren lijkt me niet zo kosher, onmogelijk zelfs.
MijnObject wordt hier gebruikt als classe om een object aan te maken (new keyword)
Als ik MijnObject puur als functie zou gebruiken dan werkt dat perfect op volgende wijze:
var testje = parent.boven.MijnObject();
Maar ik heb natuurlijk niet goed nagedacht eer ik poste
Ik moet namelijk het object instantieren in frame "boven" en niet in de frame "onder" want de onderste frame kan van pagina veranderen.
Het lijkt me wel interessant om te weten of het moet lukken of niet. Variabelen en methodes zijn op die manier toegankelijk.
var testje = new MijnObject();
werkt trouwens ook niet.
Met het aparte javascript en linken in beide pagina's zou kunnen werken. Eens zien of het geen error geeft.
Geplaatst: 08 jun 2007, 15:19
door crapiecorn
BungaMan schreef:crapiecorn schreef:
Die methode voor uw functie te instantiëren lijkt me niet zo kosher, onmogelijk zelfs.
MijnObject wordt hier gebruikt als classe om een object aan te maken (new keyword)
Ja dat heet instantiëren

, al mag je bij javascript wel nooit van een class spreken.
Geplaatst: 09 jun 2007, 13:27
door BungaMan
kleine update... het probleem is dat het javascript van de 2e frame eerst wordt uitgevoerd en dan het javascript van de 1e frame.
dus de code in mijn eerste post werkt wel
var testje = new parent.boven.MijnObject();