Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   In iFrame auf anderer Seite verlinken (https://www.delphipraxis.net/51623-iframe-auf-anderer-seite-verlinken.html)

chros 16. Aug 2005 07:04


In iFrame auf anderer Seite verlinken
 
Hi!

Ich hab schon überall gesucht und nichts gefunden, vielleicht hat einer von Euch Erfahrung damit.

Ich möchte auf einer HTML Seite einen Link der mir eine andere seite in einem iFrame auf einer neuen seite öffnet. ähh ja ... also

Ich habe die seite mit dem link start.html.
Dann noch die seite mit dem Iframe frame.html.
Zu guter letzt die seite die in dem Iframe angezeigt werden soll, source.html.

Jetzt klicke ich auf den link in start.html, die seite frame.html soll sich öffnen und in deren Iframe soll die seite source.html geladen werden.

Hat da jemand von Euch Idee? Ein Java script oder ähnliches?

Vielen Dank im vorraus.

Mfg Chros

CalganX 16. Aug 2005 07:07

Re: In iFrame auf anderer Seite verlinken
 
Hi,
du kannst vorgeben, welche Seite gelanden werden soll. Zum Beispiel:
Code:
<iframe name="frame" id="inframe" src="source.html" />
Wenn sich aber die Adresse dynamisch ändert, wird das schwierig. Du kannst Get-Parameter an deine URL-Anhägen (deine Adresse sieht dann im Browser z.B. so aus: page.html?seite=source.html), aber mit JavaScript ist es umständlich die Auszulesen. Das wäre mit PHP dann einfacher gelöst.

Chris

chros 16. Aug 2005 07:22

Re: In iFrame auf anderer Seite verlinken
 
Wow! Danke für die schnelle Antwort.

Aber in prinzip brauch ich es nicht so kompliziert.

Wenn der link und Iframe auf einer seite sind kann ich ja den link wie folgt ausführen:

link

Ich bräuchte jetzt sowas ähnliches nur das ich da auch die Seite angeben muß wo der IFrame liegt.

Also wunschgedanke wäre

link

Nur das wirds so leider nicht spielen. Kann ich also mit einem Javascript die datei frame.html öffnen und dem Iframe die source.html übergeben sodas diese dann in dem Iframe angezeigt wird???

Eigentlich schon kompliziert! :)

jfheins 16. Aug 2005 11:49

Re: In iFrame auf anderer Seite verlinken
 
Sowas ?
Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
<head>
 <title></title>
 <link rel="stylesheet" type="text/css" href="design.css" />
 <meta name="author" content="Julius Heins" />
 <script type="text/javascript">
 <!-- 
  var fenster;
 
  function oeffne ()
  {
    fenster = open ("seite2.htm", "bla");
     
     setTimeout ("setze()", 100);    
  } 
 
  function setze ()
  { 
    if (fenster.document.getElementById("meiniframe"))
    {
     fenster.document.getElementById("meiniframe").src = "postdp.htm";
    }
    else
    {
       setTimeout ("setze()", 100);
    }   
  }
 //-->
 </script>
</head>

<body>

[url="javascript:oeffne();"]Link[/url]

</body>
</html>
Seit2.htm:
Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
<head>
 <title></title>
 <link rel="stylesheet" type="text/css" href="design.css" />
 <meta name="author" content="Julius Heins" />
</head>

<body>
           
<iframe src="http://google.de/" id="meiniframe">

</iframe>

</body>
</html>

chros 16. Aug 2005 20:06

Re: In iFrame auf anderer Seite verlinken
 
Danke jfheins!

Das funktioniert eigentlich ganz gut, bis auf einen Schönheitsfehler.

Es wird zwar die richtige Seite usw. geöffnet. Allerdings wird die sofort gegen die die bei src angegeben ist ersetzt bei deinem Beispiel http://google.de <iframe src="http://google.de/" id="meiniframe"> .

Ich hab jetzt schon einiges ausprobiert nur leider hat nichts funktioniert. Hab sogar ausprobiert was passiert wenn man den src tag einfach weg lässt, aber dann wird einfach ne weiße Seite angezeigt.

Hat da noch wer eine Idee????

Vielen Dank schon mal.

Gruß chros.

jfheins 16. Aug 2005 20:12

Re: In iFrame auf anderer Seite verlinken
 
Du möchtest also eine Seite öffnen, und dann mit einem Link der öffnenden Seite den iFrame der geöffneten Seite verändern, ja ?

Das geht sogar noch einfacher:

Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="design.css" />
<meta name="author" content="Julius Heins" />
<script type="text/javascript">
<!-- 
  var fenster;

  function oeffne ()
  { 
    fenster = open ("seite2.htm", "bla");      
  } 
 
  function setze ()
  { 
     fenster.document.getElementById("meiniframe").src = "postdp.htm";  
  } 
//-->
</script>
</head>

<body>

[url="javascript:oeffne();"]Seite öffnen[/url]

[url="javascript:setze();"]ihren iFrame ändern[/url]

</body>
</html>

chros 16. Aug 2005 21:59

Re: In iFrame auf anderer Seite verlinken
 
Nein! Das erste Beispiel von Dir hätte schon den zweck erfüllt:

Das ist der Quellcode von der Seite die eigentlich als Portal dienen soll:
[code=xml]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Unbenanntes Dokument</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="JavaScript" type="text/JavaScript">
<!--
var fenster;

function oeffne (linke)
{
fenster = open ("start.html", "Main");

window.setTimeout (setze(linke), 100);
}

function setze (linke)
{
if (fenster.document.getElementById("mainiframe"))
{
fenster.document.getElementById("mainiframe").src = linke;
}
else
{
setTimeout (setze(linke), 100);
}
}
//-->
</script>
</head>

<body background="hoeco.jpg" style="background-repeat:no-repeat">
Code:
[url="javascript:oeffne('mobilestrom/index.htm')"][/url]
[url="javascript:oeffne('modellbau/index.htm')"][/url]
</body>
</html>
Das ist die Ziel Seite mit dem IFrame:

XML-Code:
<HTML>
<head>
<title>HOECO</title>
<script type="text/javascript" src="includes/browser.js"></script>
<script type="text/javascript" src="config2.js"></script>
<script language="JavaScript" type="text/JavaScript">
</script>
</head>

<body onload="init()">

<TABLE WIDTH=1024 BORDER=0 CELLPADDING=0 CELLSPACING=0>
   <TR>
      <TD COLSPAN=3>
         [img]Bilder/hoeco_01.gif[/img]</TD>
   </TR>
   <TR>
      <TD ROWSPAN=2>
         [img]Bilder/hoeco_02.gif[/img]</TD>
      <TD>
         <iframe src="" width="743" height="560" name="mainiframe" id="mainiframe"></iframe></TD>
      <TD ROWSPAN=2>
         [img]Bilder/hoeco_04.gif[/img]</TD>
   </TR>
   <TR>
      <TD>
         [img]Bilder/hoeco_05.gif[/img]</TD>
   </TR>
</TABLE>
</BODY>
</HTML>
Das ganze soll jetzt so funktionieren das wenn ich auf der Portalseite einen Link klicke, die Seite mit dem IFrame aufgerufen wird und die richtige html Seite im IFrame geöffnet wird. Bei dem Beispiel mobilekuhl/index.html bzw. modellbau/index.html. Das würde ja theoretisch mit dem code den du gepostest hast ja auch funktionieren, mein problem ist nur das mir die src vom iFrame im HTML Tag <iframe src="" width="743" height="560" name="mainiframe" id="mainiframe"></iframe> die Sache zerstört. Denn nach dem ausführen des Scriptes ändert er den Inhalt des Iframes wieder auf seinen Standard Wert (hier ist er jetzt leer) zurück, d.h. dann natürlich weißes Fenster.

Die config2.js und browser.js sind im übrigen nur ein kleine Javascript Menüs welche in späterer Folge auch den IFrame ansteuern, die hab ich allerdings erst später eingebunden, es liegt also auch nicht daran.

Ich bin normalerweise kein blutiger Anfänger in Javascripten nur ich hab langsam den Durchblick verloren oder ich sehe den Wald vor lauter Bäumen nicht mehr und es gibt eine total einfache Lösung.

Wie gesagt dein Source war mir eine große Hilfe, nur häng ich noch daran das der Iframe den Inhalt wieder verändert.

Gruß chros

jfheins 16. Aug 2005 22:27

Re: In iFrame auf anderer Seite verlinken
 
Tut mir leid, aber ich kann dein Problem nicht so ganz (... also gar nicht) nachvollziehen ...

Wann "ändert sich der Inhalt wieder auf den Standardwert zurück" ?

Also irgendwann war der Inhalt richtig, und dann wird er wieder, wie am Anfang ?

:gruebel:

chros 17. Aug 2005 06:12

Re: In iFrame auf anderer Seite verlinken
 
OK!

Ich hab das ganze mit dem Internet Explorer 6 getestet. (Ist zwar nicht mein Favorit, aber der meist verbreiteste Browser)

Ich öffne die erste Seite dann kommt der gelbe Balken mit den Geblockten inhalten. Den zulassen. Dann klick ich auf einen der zwei links.

Die zweite Seite mit dem Iframe öffnet sich und es kommt oben wieder dieser gelbe Balken mit den geblockten Inhalten. Bis dahin wird im Iframe der richtige Inhalt angezeigt. Sobald ich die geblockten Inhalte zulasse, wird im Iframe wieder der Standard source aus dem HTML Tag angezeigt.

Das ist echt schon zum durchdrehen.

GRuß chros

chros 17. Aug 2005 12:01

Re: In iFrame auf anderer Seite verlinken
 
Keiner eine Idee? *verzweiflung*

Gruß chros

jfheins 17. Aug 2005 12:28

Re: In iFrame auf anderer Seite verlinken
 
Nu wart' doch mal die Zeit ab. Ich musste erstmal rumprobieren, bis ich auch die gelben Balken bekommen hab' ausserdem hab' ich auch ein Privatleben ;)


AAAAlso:

Alles geht wie gewünscht, nur hast du auf der iFrame-Seite Javascript, was dazu führt, dass nach Aktivierung von JS die Seite neugeladen wird, und somit wieder die alte Seite im iFrame erscheint.

Wenn du auf das javascript in der iFrameseite nicht verzwichten kannst/willst, geht es wie folgt:

Im Moment wird die Seite geöffnet, und die Seite geändert.

Nun musst du es hinbekommen, dass diese Seite

:arrow: immer OnLoad sich die Seite für den iFrame aus der Hauptseite holt

:arrow: im OnUnload die iFrame-adresse irgendwie gespeichert wird, und im OnLoad wieder geladen. (Daran denken, dass das Fenster die richtige Seite bekommt, und bei mehreren Instanzen michts gemischt wird ;) )

Für die Identífikation könntest du z.B. den Fensternamen, oder eine Zufällige Zahl nehmen ;)

Du könntest das alles aber wesentlich besser mit PHP lösen ;)

Igotcha 17. Aug 2005 12:52

Re: In iFrame auf anderer Seite verlinken
 
Zitat:

Zitat von jfheins
Du könntest das alles aber wesentlich besser mit PHP lösen ;)

Genau das hab ich ab dem zweiten Post auch gedacht...

Gruß Igotcha

chros 17. Aug 2005 13:13

Re: In iFrame auf anderer Seite verlinken
 
Zitat:

Nu wart' doch mal die Zeit ab. Ich musste erstmal rumprobieren, bis ich auch die gelben Balken bekommen hab' ausserdem hab' ich auch ein Privatleben
Ich wollt keinen Stress machen, sorry. :)

Zitat:

Du könntest das alles aber wesentlich besser mit PHP lösen
PHP, naja das hab ich irgendwann einmal kurz angeschnitten das wird jetzt wahrscheinlich eine Lebensaufgabe.
Ich dachte mir immer, Gästebücher usw. werd ich eh nie programmieren also brauch ich das auch nicht, so kann man sich irren.

Zitat:

immer OnLoad sich die Seite für den iFrame aus der Hauptseite holt
Das hatte ich mir auch schon überlegt, nur wie? Mit Variable übergeben hab ich schon probiert, klaglos gescheitert. Das Problem ist bei Javascript halt das die variablen nach beenden des scriptes ihre Werte wieder verlieren. Hab bis heute noch keine geeignete Lösung dafür gefunden.

Aber trotzdem vielen Dank nochmals.

Gruß chros

ManuMF 17. Aug 2005 14:18

Re: In iFrame auf anderer Seite verlinken
 
Eine Idee, hab noch nicht getestet, ob es funktioniert:

Auf start.html
Code:
[url="#source.html"][/url]
Auf frame.html
Code:
<script {im head-Bereich}>
if (document.referrer.indexOf('#source.html') != -1)
   {
   iframename.src = 'source.html';
   }
// Weitere Überprüfungen
</script>
Wenn das Ziel im Link zuerst ausgeführt wird und danach onClick AND der Referrer übergeben wird, könnte es klappen.

[edit]Leider funktioniert es nicht. document.referrer = '' und window.referrer = undefined.
Aber vielleicht kann man das irgendwie verändern.[/edit]

chros 17. Aug 2005 17:32

Re: In iFrame auf anderer Seite verlinken
 
Hi!

Ich hab es endlich gelöst und es funktioniert!

Die Portal Datei (Die erste Seite die man sieht):

XML-Code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Unbenanntes Dokument</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="JavaScript" type="text/JavaScript">
<!--
  var fenster;

  function oeffne (linke)
  { 
   URL='start.html?'+linke;
   window.location=URL;
  }   
//-->
</script>
</head>

<body background="hoeco.jpg" style="background-repeat:no-repeat">
[url="javascript:oeffne('mobilestrom/index.htm')"][/url]
[url="javascript:oeffne('modellbau/index.htm')"][/url]
</body>
</html>
Und die seite mit dem IFrame:
XML-Code:
<HTML>
<head>
<title>HOECO</title>
<script type="text/javascript" src="includes/browser.js"></script>
<script type="text/javascript" src="config2.js"></script>
<script language="JavaScript" type="text/JavaScript">
<!--
var uebernahme=new String(document.location.href);
var uebergabe=uebernahme.indexOf("?");
var a=new String(uebernahme.substring(uebergabe+1,uebergabe+uebergabe));
function startupall()
{
document.getElementById("mainiframe").src = a;
init();
}
//-->
</script>
</head>

<body onload="startupall()">

<TABLE WIDTH=1024 BORDER=0 CELLPADDING=0 CELLSPACING=0>
   <TR>
      <TD COLSPAN=3>
         [img]Bilder/hoeco_01.gif[/img]</TD>
   </TR>
   <TR>
      <TD ROWSPAN=2>
         [img]Bilder/hoeco_02.gif[/img]</TD>
      <TD>
         <iframe width="743" height="560" name="mainiframe" id="mainiframe"></iframe></TD>
      <TD ROWSPAN=2>
         [img]Bilder/hoeco_04.gif[/img]</TD>
   </TR>
   <TR>
      <TD>
         [img]Bilder/hoeco_05.gif[/img]</TD>
   </TR>
</TABLE>
</BODY>
</HTML>
Vielleicht nicht die eleganteste Version, aber ich erspare mir PHP und der Server muß auch kein PHP unterstützen.
Die Portalseite wird zwar geschlossen aber das ist mir im Prinzip egal. Falls jemand irgendwelche Probleme mit dem Code sieht, bitte bescheid sagen.

Gruß chros.


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:29 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz