Problem mit dem Verlinken von Ankern, die in einem Iframe liegen

HTML:
window.onload = function(){
  if(location.hash.length != 0){
    self.iframename01.location += (location.hash.substr(0,1)=="#")? location.hash : ("#"+location.hash);
  }
}

...dazu benötige ich noch etwas Unterstützung. Das ganze muss jetzt in den 'head' ?

So? :
HTML:
<script type="text/javascript">
function LinkAnker () {
  window.onload = function(){
  if(location.hash.length != 0){
    self.iframename01.location += (location.hash.substr(0,1)=="#")? location.hash : ("#"+location.hash);
  }
}
</script>

...und dann die Funktion mit <a onklick="LinkAnker()"... aufrufen ?

Wie baue ich dann die Ankerbezeichnungen ein?

Fragen über Fragen
 
Du brauchst die Funktion nicht aufrufen, sie wurde bereits dem onload-Event zugewiesen(wird also ausgeführt, sobald das Dokument geladen ist.)
 
Hallo,

ich habe nun jede Menge gegoogelt und in die JS-Referenz geschaut...aber leider konnte ich mein Problem noch nicht lösen :confused::confused::confused::confused::confused:

Bitte, bitte, schenkt mir noch einmal Eure Aufmerksamkeit

Also ich habe die Funktion in den Head gepackt:

HTML:
<script type="text/javascript">
function LinkAnker () {
  window.onload = function(){
  if(location.hash.length != 0){
    self.iframename01.location += (location.hash.substr(0,1)=="#")? location.hash : ("#"+location.hash);
  }
}
</script>

Dann habe ich hiermit versucht, den Anker im Iframe aufzurufen:

HTML:
<a href="extern01.html#anker-info-wettbewerbe">

Dabei wird zwar der richtige Anker aufgerufen, allerdings nicht im Iframe "iframename01",sondern die im Iframe eingebettete Datei "extern01.html" alleine...

Was soll denn die o.g. Funktion von "Quaese" überhaupt bewirken ?

Gruss

bitworker
 
Hi,

die Funktion wird so, wie von mir gepostet in den Header der Datei geschrieben, die den iFrame enthält. Wird dieses Dokument nun mit einem Anker aufgerufen, wird dieser aus dem Url extrahiert und an den URL des iFrame-Dokuments angehängt.
Code:
<html>
<head>
<title>www.tutorials.de</title>
<meta name="author" content="Quaese">
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
<script type="text/javascript">
  <!--
window.onload = function(){
  if(location.hash.length != 0){
    self.iframename01.location += (location.hash.substr(0,1)=="#")? location.hash : ("#"+location.hash);
  }
}
 //-->
</script>
</head>
<body>
<iframe name="iframename01" src="iframedoc.html"></iframe>
</body>
</html>
Ciao
Quaese
 
...vielen Dank erst mal.

Ich habe Deinen Code in den Header der Iframeseite (iframedoc.html) gelegt.

Wenn ich nun den Ankerlink (anker02) aufrufe, öffnet sich die Iframeseite, jedoch nicht am Ankerpunkt, sondern ganz oben auf der Seite:
HTML:
<a href="iframedoc.html#anker02" >

Wie muss der Link korrekt lauten ?

Gruss

bitworker
 
Hi,

nochmal die Vorgehensweise detailliert - um sicher zu stellen, dass wir nicht aneinander vorbei reden.

Von Dokument a (a.html) aus wird Dokument b (b.html) aufgerufen, wobei der Anker für Dokument c (c.html) übergeben wird. Dokument c wird im iFrame in Dokument b angezeigt.

a.html
Code:
<html>
<head>
<title>www.tutorials.de</title>
<meta name="author" content="Quaese">
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
</head>
<body>
<a href="#" onclick="window.location.href='b.html#anker'; return false;">Dokument b mit Anker für iFrame-Dokument c</a>
</body>
</html>
b.html
Code:
<html>
<head>
<title>www.tutorials.de</title>
<meta name="author" content="Quaese">
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
<script type="text/javascript">
  <!--
window.onload = function(){
  if(location.hash.length != 0){
    self.iframename01.location += (location.hash.substr(0,1)=="#")? location.hash : ("#"+location.hash);
  }
}
 //-->
</script>
</head>
<body>
<iframe name="iframename01" src="c.html" width="100%" height="300"></iframe>
</body>
</html>
c.html
Code:
<html>
<head>
<title>www.tutorials.de</title>
<meta name="author" content="Quaese">
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
</head>
<body>
<div style="background: #fff; height: 600px;">Höhe</div>
<div id="anker">Ich bin der Text am Ankerpunkt <i>anker</i></div>
</body>
</html>
Ciao
Quaese
 
Zurück