Gesplitste functie gaat in de fout

Status
Niet open voor verdere reacties.

JeroenE

Terugkerende gebruiker
Lid geworden
20 mrt 2005
Berichten
1.950
Voor ik mijn vraag stel eerst even een schets van mijn nieuwe site die in de maak is.

De index bevat een hiddenframe onder de vorm van een iframe, die ook als id hiddenframe heeft, en een mainDiv, ook mainDiv als id.

Eerst wordt in het hiddenframe een pagina geopend, waarna de innerhtml overgezet wordt naar de maindiv en het hiddenframe een src about:blank krijgt.

Als ik alles in 1 functie zet, dan werkt het perfect, zij het als de server direct reageert, anders heb je een foutmelding van object wordt verwacht.
Op mijn pc werkt alles perfect in 1 functie.

Om het probleem van een mogelijk te trage server op te lossen, heb ik de functie in twee gesplitst, om het tweede deel waar de innerhtml overgezet wordt aan te roepen van het moment dat de nieuwe pagina in het hiddenframe geladen is.
Die tweede functie roep ik aan met een onLoad in de bodytag in de nieuwe pagina, die op dat moment in het hiddenframe staat.

Nu krijg ik telkens de foutmelding : regel .. teken .. "null" is leeg of geen object.

Oorspronkelijke functie :
PHP:
function changePage(page,url) {
d = document.getElementById;
d("hiddenframe").src = page + ".htm";
if (url) {
window.open(url);
};
setTimeout("d('mainDiv').innerHTML = window.hiddenframe.document.body.innerHTML;",2000);
setTimeout("d('hiddenframe').src = 'about:blank';",2500);
};

Hier de gesplitste functie :
PHP:
function changePage(page,url) {
d = document.getElementById;
d("hiddenframe").src = page + ".htm";
if (url) {
window.open(url);
};
};

function showPage() {
d = document.getElementById;
d("mainDiv").innerHTML = window.hiddenframe.document.body.innerHTML;
d("hiddenframe").src = "about:blank";
};

Ik geraak er niet meer uit. Iemand die me kan helpen?
Thx.

Greetz : Jer:cool:en.
 
Hoi Jeroen,

ik denk dat het probleem ligt bij je gebruik van getElementById. Ik was van mening dat deze functie altijd een id als argument moest meekrijgen.
Volgens mij zal het wel werken als je de aanroep elke keer volledig uitschrijft, dus:
PHP:
document.getElementById("mainDiv");
ipv
PHP:
d("mainDiv");

--Johan
 
Goed idee, maar ik heb dat al uitgeprobeerd.

Greetz : Jer:cool:en.
 
Ik heb de oplossing gevonden.

Omdat de tweede functie aangeroepen wordt in de body van de pagina in het hiddenframe mag ik geen window.document....... vragen.

Hier mijn oplossingsfunctie (alleen tweede deel van de gesplitste functie :

PHP:
function showPage() {
parent.document.getElementById("maindiv").innerHTML = document.body.innerHTML;
this.src = "about:blank";
};

Ik had ook mijn maindiv aanzocht met mainDiv. :o

Greetz : Jer:cool:en.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan