Iframe mit Javascript nachladen

son gohan

Erfahrenes Mitglied
Hallo, ich habe hier ein Script aus dem Forum bekommen, welches von Quaese im März 2004 vórgestellt wurde.

Es wurde in meine Seiten eingebaut und auf verschiedenen Browsern getestet.

In allen Browser hat es zumal geklappt ausser im Opera Browser. Dort wird die Seite nicht im Iframe der index.html nachgeladen wenn man Sie einzeln aufruft.

Ich stelle euch einfach mal beide Codes vor:

Code index.html:
HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
   "http://www.w3.org/TR/1999/REC-html401-19991224/loose.dtd">
<html lang="de">
<head>
<title>Herzlich</title>
 <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
  <link rel="STYLESHEET" href="styles.css" type="text/css">
 <style type="text/css">
<!--
html
{
height:100%; max-height:100%; overflow:hidden; padding:0; margin:0; border:0; background:#fff; background:url(images/hinter123.jpg) #fff; background-position:-2px 0; font-size:76%; font-family:georgia, palatino linotype, times new roman, serif;
}
body
{
height:100%; max-height:100%; overflow:hidden; padding:0; margin:0; border:0;
}
-->
</style>
 
<script language="javascript" type="text/javascript">
<!--
if(window.location.search != ''){
	strSearch = String(location.search);
	intLength = strSearch.length;
	strSearch = strSearch.substring(1,intLength);
	document.write('<div id="content"><iframe scrolling="yes" ALLOWTRANSPARENCY="true" marginheight="10" marginwidth="10" frameborder="0" name="main" src="' + strSearch + '"  width="100%" height="100%">Ihr Browser unterstützt leider keine iFrames</iframe></div>');
}else{
	document.write('<div id="content"><iframe scrolling="yes" ALLOWTRANSPARENCY="true" marginheight="10" marginwidth="10" frameborder="0" name="main" src="willkommen.html"  width="100%" height="100%">Ihr Browser unterstützt leider keine iFrames</iframe></div>');
}
-->
</script>

</head>
<body>

<div id="head">
<div id="datum">
<script language="JavaScript" type="text/javascript">
<!--
var Datum = new (Date);
var Tag = Datum.getDate();
var Wochentag = Datum.getDay();
var Monat = Datum.getMonth();
var Jahr = Datum.getYear();
var Tagname = new Array("So","Mo","Di","Mi","Do","Fr","Sa");
var Monatname = new Array("Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember");
var Stunde = Datum.getHours();
var Minute = Datum.getMinutes();
if(Minute<10)
{
 Minute = "0" + Minute;
}
if(Stunde<10)
{
 Stunde = "0" + Stunde;
}
document.write(Tagname[Wochentag]+", "+Tag+". "+Monatname[Monat]+" "+Jahr+" - "+Stunde+":"+Minute);
//-->
</script>
</div>
Willkommen <br style="clear:both;">
</div>
 
<div id="leftmenu">
<div id="los" align="left">
<form action="home.html" method="get" target="main">
<input type="hidden" name="16563152924&ULP" value="">
<input type="text" value="" name="query" style="width:90px;" maxlength="100">
<input id="los2" type="submit" value="&nbsp;" onFocus="if(this.blur)this.blur()"><br>
<u>Suchwort eingeben</u></form></div>
 
	<ul id="vlistmenu">
	<li><a target="main" href="willkommen.html" onfocus="this.blur()">
	  Home</a></li>
	  <li><a target="main" href="willkommen.html" onfocus="this.blur()">
	  Home</a></li>
<li><a target="main" href="willkommen.html" onfocus="this.blur()">
	  Home</a></li>
	</ul>
  </div>
</body>
</html>

Der wichtige Teil mit dem Javascript spielt sich soweit ich weis nur im head ab.

Code impressum.htnl --> die Seite sollte sich dann normal im iframe der letzten Seite öffnen:

HTML:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/1999/REC-html401-19991224/loose.dtd">
<html>
<head>
<title>Impressum</title>
 <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
 <link rel="STYLESHEET" href="styles.css" type="text/css">

<script type="text/javascript">
if(!(top.document.title == 'Herzlich'))
	window.location.href = 'index.html?' +  location.href;
</script>
 
</head>
<body class="text">

<h1 align="center">Impressum</h1>
<div align="center">
<div style="width:70%;border:0px solid #8F8F8F;margin-left:30px;text-align:left;">
<h2>Mustermann Firma </h2>
<dl>
<dt>Muster Mustermann </dt>
<dt>Mustermann Strasse 54 </dt>
<dt>123456 Musterort </dt>
</dl>
<dl>
<dt>Telefon + 49 - 123456789 </dt>
<dt>Telefax + 49 - 123456789 </dt>
</dl>

<dl>
<dt>Email: <a href="mailto:Muster Mustermann@Muster Mustermann.de">Muster Mustermann@Muster Mustermann.de</a> </dt>
<dt>Inhaber: Muster Mustermann </dt>
</dl>
</div></div>

<p align="center"><span id="copyrigth">Copyright (C)2004 by musterfirma . Alle Grafiken oder Bestandteile der Homepage d&uuml;rfen nicht ohne schriftliche Genehmigung verwendet werden.</span>
</p>
</body></html>

Soweit ich weis muss der Titel der index.html im Script der impressum.html stehen, damit es funkt. Wie gesagt geht es bei allen Brwosern ausser beim Opera.
 
Hi,

diesen Teil
Code:
<script language="javascript" type="text/javascript">
<!--
if(window.location.search != ''){
	strSearch = String(location.search);
	intLength = strSearch.length;
	strSearch = strSearch.substring(1,intLength);
	document.write('<div id="content"><iframe scrolling="yes" ALLOWTRANSPARENCY="true" marginheight="10" marginwidth="10" frameborder="0" name="main" src="' + strSearch + '"  width="100%" height="100%">Ihr Browser unterstützt leider keine iFrames</iframe></div>');
}else{
	document.write('<div id="content"><iframe scrolling="yes" ALLOWTRANSPARENCY="true" marginheight="10" marginwidth="10" frameborder="0" name="main" src="willkommen.html"  width="100%" height="100%">Ihr Browser unterstützt leider keine iFrames</iframe></div>');
}
-->
</script>
bindest Du im BODY des Start-Dokumentes an der Stelle ein, an der der iFrame stehen
soll.

Ciao
Quaese
 
Hallo Quaese,

ich bin sehr froh das du mir geantwortet hast. Ich nämlich seit gestern Abend wegen diese Sache am ausprobieren, und bekomme es nicht hin.

Also jetzt hab ich den Code :

HTML:
<script language="javascript" type="text/javascript">
<!--
if(window.location.search != ''){
	strSearch = String(location.search);
	intLength = strSearch.length;
	strSearch = strSearch.substring(1,intLength);
	document.write('<div id="content"><iframe scrolling="yes" ALLOWTRANSPARENCY="true" marginheight="10" marginwidth="10" frameborder="0" name="main" src="' + strSearch + '"  width="100%" height="100%">Ihr Browser unterstützt leider keine iFrames</iframe></div>');
}else{
	document.write('<div id="content"><iframe scrolling="yes" ALLOWTRANSPARENCY="true" marginheight="10" marginwidth="10" frameborder="0" name="main" src="willkommen.html"  width="100%" height="100%">Ihr Browser unterstützt leider keine iFrames</iframe></div>');
}
-->
</script>

vom head raus genommen und direkt in die Seite eingebaut. Und den Code:
HTML:
<script type="text/javascript">
if(!(top.document.title == 'Herzlich'))
	window.location.href = 'index.html?' +  location.href;
</script>

in den head der Seiten getan, welche im frame geladen werden sollen.

Wenn ich das ganze Teste, dann hab ich überall erfog, auser im blöden Opera Browser nicht. Hier passiert was seltsames!

Die Seite wird im Iframe der index.html geladen, aber aufeinmal werden alle Hintergrundbilder der index.html nicht mehr angezeigt.

Wenn ich die index.html aber einzeln aufrufe im Browser zeigt er alles an wie üblich.

Dann ist noch was anders bein Opera, er lädt die Seite ja im Frame, zeigt kommischerweise die Hintergrundbilder nicht mehr an, und wenn ich jetzt einen Link aus meinem Menü links drücke und damit z.B. meine Impressum Seite aufrufe, in der ja auch im head der zweite Code für den Reload ist, dann öffnet sich die impressum.html im Frame aber in einer weiteren index.html drine.

Das sollte aber auch nicht so sein, was soll ich machen, wieso werden die Bilder nicht angezeigt?

Ich habe das ganze auch eben online getesttet, aber da kommt es nicht mhr so vor und läuft richtig. ABer das kann doch im Prinzip nicht normal sein, wieso geht das bei allen anderen Brwoser dirket und beim Opera nur online?

Und ist es korrekt das in der Adresszeile des Browser die komplette Adresse immer nach einem Fragezeichen angehängt wird bei dieser Technik, so z.B.:
http://www.meinedomain.de/index.html?http://www.meinedomain.de/kontakt.html
 
Hi,

habe das Problem hier mal nachgestellt, kann jedoch das beschriebene nicht nachvollziehen.
(Opera 7.54, IE 5.x und 6, Mozilla 1.0, Netscape 7.1)

- index.html mit Navigation und iFrame (Titel: Herzlich)
- willkommen.html mit Willkommenstext (in iFrame angezeigt)
- impressum.html (in iFrame angezeigt)

Ich habe dir die Dateien in den Anhang gepackt.

Das die Adresse so angezeigt wird, ist so gewollt, da hierüber die Datei bekannt ist, die im
iFrame aufgerufen werden soll.

Ciao
Quaese
 

Anhänge

Hallo, ich habe deine Demo geladen und werde Sie abspeichern für alle Fälle.


Mit dem Opera Brwoser sind mir einige Sachen noch unklar, aber da es ja online nicht zu dem Problem kommt, werde ich das so ruhen lassen.

Eine Frage habe ich noch zu deinem Dowload, du hast dort in die index.html noch zusätzlich ein

HTML:
<noscript>
<iframe name="contentFrame" src="willkommen.html" width="100%" height="100%">Ihr Browser unterst&uuml;tzt leider keine iFrames</iframe>
</noscript>

eingebaut, ist dies notwendig und sollte ich das Attribut name nicht auch auf main umbennen wie bei den anderen?

Viele Grüße
feh
 
Hi,

den noscript-Bereich habe ich eingefügt, um Usern mit abgeschalteten JavaScript ebenfalls einen
iFrame mit einem Standarddokument anzuzeigen.

Selbstverständlich solltest du "main" im name-Attribut zuweisen - darauf habe ich vergessen zu achten.

Ciao
Quaese
 

Neue Beiträge

Zurück