Doorschakelen in iframe

Status
Niet open voor verdere reacties.

patje10

Gebruiker
Lid geworden
1 mrt 2006
Berichten
39
Hoi iedereen

Ik heb het volgend scriptje dat helaas niet werkt:

<html>
<head><title>test.html</title></head>
<SCRIPT LANGUAGE="JavaScript">
function checkFrame() {
var obj = document.frames.frame;
if (obj.document.title != "The page cannot be found") {
obj.location = "fout.html";
}


}


</SCRIPT>
<body onload="frame.location.href = self.location.search.substr(1)">
<iframe name="frame" height="100%" width="100%" align="middle" border="0" frameborder="no"> </iframe>

</body></html>


Graag zou ik, indien de pagina niet kan worden weergegeven, een alternatieve (fout) pagina weergeven in het frame.

Kan iemand mij hierbij helpen?

Alvast bedankt voor jullie feedback
 
Je hebt de body wel gesloten, maar niet geopend, verder weet ik het niet:thumb:
 
Dit werkt alleen in internet explorer....

PHP:
<html>
<head><title>test.html</title></head>
<SCRIPT LANGUAGE="JavaScript">
function checkFrame() {
var obj = document.frames.frame;
if(obj.document.location.protocol=="res:")
 alert("Bestaat niet");
}
</SCRIPT>
<body>
<iframe src="http://datbestaattochhelemaalniet.ohja" name="frame" height="100%" width="100%" align="middle" border="0" frameborder="no" onload="checkFrame()"> </iframe>

</body></html>
 
Ik denk dat je het volgende best verandert :

Code:
var obj = document.frames.frame;
moet volgens mij dit zijn :
Code:
var obj = document.frames[frame];
of
Code:
var obj = document.frame;

Greetz : Jer:cool:en.
 
JeroenE zei:
Ik denk dat je het volgende best verandert :

Code:
var obj = document.frames[frame];

Greetz : Jer:cool:en.

Code:
var obj = document.frames["frame"];
Moet het zijn dan, maar dat is hetzelfde als de eerste statement
 
De script (tussen de <script> tags) staat tussen je head en je body.. hoe wil je dat in hemelsnaam doen? :D

Zet dat alles dus in ieder geval tussen de body-tags, of tussen de head-tags ;)

@lollige: de body in de startpost is wel dégelijk geopend, kijk nog maar eens ;)


Edit: Overigens zou ik een 404-pagina laten zien, aan de hand van de zogenaamde 'response header'.. als deze 404 teruggeeft, weet je dat de pagina niet gevonden kan worden ;)
Er is in javascript vast wel een mogelijkheid om die response header op te vragen...
 
Laatst bewerkt:
Sorry jongens, maar het werkt echt nog niet. Geen alert.
Kunnen jullie mij ff verder opweg helpen, want ik ben er maar een leek in.

alvast bedankt voor de moeite
 
aaajeetee heeft net de oplossing gegeven die alle anderen nog niet opgevallen was, ook mij niet : zet het script eens tussen de
HTML:
<head>
en de
HTML:
</head>
. :D

@ dropl : je hebt gelijk met die verbetering van mijn bericht. :thumb:

Greetz : Jer:cool:en.
 
Probeer het eens hiermee:
HTML:
<html>
 <head>
  <title>checkFrame</title>
   <script language="JavaScript">
    // Egel 060302 :)
    function loadFrame() {
     if (location.search != '') frames[0].location.replace(location.search.substr(1));
     };
    function checkFrame() {
     if (/404/.test(frames[0].document.title)) frames[0].location.replace('fout.html');
     };
   </script>
 </head>
 <body onload="loadFrame()">
  <iframe src="about:blank" height="100%" width="100%" align="middle"
    border="0" frameborder="no" onload="checkFrame()"></iframe>
 </body>
</html>
Zie bijlage.

Het werkt door de title van het document in het iframe te controleren op '404', maar dan moet je website wel een foutpagina geven waar dat in de title staat.

IE geeft zijn eigen foutpagina [res:] weer als de website een foutpagina geeft die kleiner is dan 512 bytes: link. Dat is uit te schakelen onder internet-opties > geavanceerd door "Gebruiksvriendelijke HTTP-foutberichten weergeven" uit te vinken maar staat standaard aan.

Ik heb .replace() gebruikt zodat de vervangen pagina's niet in de geschiedenis komen. Je kunt het script testen met test_framecheck.html.


Vr.Gr. Egel.
 

Bijlagen

Laatst bewerkt:
hey, guys

enorm bedankt hé, dit is het gene wat ik zocht !

patje10
 
patje11 zei:
hey, guys

enorm bedankt hé, dit is het gene wat ik zocht !

patje10
ben je je w8woord voor patje10 soms kwijt, dat je het in patje11 post???
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan