... habe mich mit diesem Code eng an dein Ausgangsbeispiel gehalten, und überprüfe jetzt in kurzen Intervallen, ob der iframe geladen werden kann.
function checklayer(url_name)
{
with (parent.mainFrame) {
if (document.getElementById('datamain')) {
frames[0].location.href = url_name;
}
else {
var fr_oben="fr_oben.html";
if (location.href.indexOf(fr_oben)<0){
location.href = fr_oben;
}
window.setTimeout(function(){checklayer(url_name);},50);
}
}
}
50 Millisekunden finde ich zu kurz, ich sehe auch nicht wo die Abbruchfunktion ist (oder übersehe ich was?) und dann musst du auch auf das vorhandensein von .document checken.
ich würd's eher so machen:
function checklayer(url_name)
{
var frame = parent.mainFrame; // Das Frame worum es sich dreht
with (parent.mainFrame) // ist das frame geladen
{
if(document)
{
var iFrame = document.getElementById('datamain');
// Existiert das iFrame
if(iFrame)
{
iFrame.location.href = url_name;
return; // ... und fertig
}
// kein iFrame, checken ob die Seite mit iFrame geladen wurde
var fr_oben = "fr_oben.html";
if (location.href.indexOf(fr_oben) < 0) location.href = fr_oben;
}
// 1/4 Sekunde sollte i.O. sein
window.setTimeout(function(){checklayer(url_name);}, 250);
}
Struppi.
--
Javascript ist toll (Perl auch!)
Javascript ist toll (Perl auch!)