Abulafia: opener Zugriff auf Frameset

Hallo ,

ich habe folgendes Problem:

Ich habe ein Frameset mit 2 frames. Aus dem 2. unteren frame öffne ich ein neues Fenster in dem sich eine sitemap befindet. Über diese sitemap möchte ich in das frameset die jeweiligen Dateien laden, wobei jeweils beide Framedateien neu geladen werden müssen.

Ich dachte dies funktioniert mit dem javascript-objekt opener, was es auch tut, allerdings nur einmal. Habe ich einmal über die Sitemap ein neue Datei geladen funktioniert bei den anderen Links nichts mehr.

Ich packe mal den Quelltext mit rein.

Framedatei:
<!---  --->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>test</title>
</head>
<frameset rows="*,24"  framespacing="0" frameborder="0"  border="0">
  <frame src="acting_about.html" name="top" id="top" frameborder="0" scrolling="Auto" noresize marginwidth="0" marginheight="0">
  <frame src="down_actabout.html" name="down" id="down" frameborder="No" scrolling="No" noresize marginwidth="0" marginheight="0">
</frameset>
<noframes>
<body bgcolor="#FFFFFF" text="#000000">
</body>
</noframes>
</html>

Sitemapdatei:

<html>
<head>
<title>Sitemap</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" href="main.css" type="text/css">

<script language="JavaScript">
// -->
function onClickSitemap(newlocation,frmname)
{
opener.parent.frames[frmname].location.href=newlocation;
}

//-->
</script>

</head>

<body leftmargin=0 topmargin=0 marginwidth="0" rightmargin="0" marginheight="0" bgcolor="#FFFFFF" text="#000000">

<!--- Anfang grosse Tabelle --->

<table border="0" cellpadding="4">
  <tr>
    <td background="global_bilder/lilatile.gif" class="sitemafett"><img src="global_bilder/tief-150px.gif" width="146" height="35"><br><br>
   Homepage<br><br>
    </td>
  </tr>
  <tr>
    <td background="global_bilder/lilatile.gif" class="sitemafett">Deutsche Seite<br>
      <br>
    </td>

</tr>
  <tr>
    <td background="global_bilder/lilatile.gif">

<!--- Anfang Rubrikentabelle englisch --->
      <span class="sitemafett">English Site</span> <br>
      <table border="0" cellspacing="5" cellpadding="5">
        <tr>
          <td valign="top">
            <!--- Anfang Company Profile --->
            <table border="0" cellspacing="2" cellpadding="2">
              <tr>
                <td width="260" class="sitemafett" bgcolor="#CCCCFF" colspan="3">Company
                  Profile </td>
              </tr>
              <tr>
                <td width="10"><img src="global_bilder/Abstandhalter.gif" width="10" height="1"></td>
                <td width="10"><img src="global_bilder/kaest.gif" width="10" height="10"></td>
                <td width="240" class="sitemap"><i><a href="javascript:onClickSitemap('framecomyest.html','top');">Yesterday</a></i></td>
              </tr>
              <tr>
                <td> </td>
                <td><img src="global_bilder/kaest.gif" width="10" height="10"></td>
                <td class="sitemap"><i><a href="javascript:onClickSitemap('framecomtod.html','top');">Today</a></i></td>
              </tr>
              <tr>
                <td> </td>
                <td><img src="global_bilder/kaest.gif" width="10" height="10"></td>
                <td class="sitemap"><i><a href="javascript:onClickSitemap('framecomtomm.html','top');">Tomorrow</a></i></td>
              </tr>
              <tr>
                <td> </td>
                <td><img src="global_bilder/kaest.gif" width="10" height="10"></td>
                <td class="sitemap"><i><a href="javascript:onClickSitemap('framecomcert.html','top');">Certifications</a></i></td>
              </tr>
            </table>
            <!--- Ende Company Profile --->
          </body>
</html>
 --->
Falls sich eine Antwort auf mein Problem schon im Forum befinden sollte ,bitte ich um Entschuldigung, meine Suche hat bisher nichts ergeben.
Ansonsten hoffe ich das mir vielleicht jemand helfen kann.

  1. gruss Abulafia,

    Ich habe ein Frameset mit 2 frames. Aus dem 2. unteren frame
    öffne ich ein neues Fenster in dem sich eine sitemap befindet.
    Über diese sitemap möchte ich in das frameset die jeweiligen
    Dateien laden, wobei jeweils beide Framedateien neu geladen
    werden müssen.
    Ich dachte dies funktioniert mit dem javascript-objekt opener,
    was es auch tut, allerdings nur einmal. Habe ich einmal über die
    Sitemap ein neue Datei geladen funktioniert bei den anderen Links
    nichts mehr.

    »»

    Ich packe mal den Quelltext mit rein.

    nicht noetig -

    Dein fenster verliert seinen opener (das document des unteren
       frames "down") in dem moment, wo dort eine neue seite geladen
       wird;

    ABHILFE:

    oeffne das fenster fuer die seitmap ueber einen funktionsaufruf
       aus dem top-frame heraus (diese funktion gehoert also in einen
       scriptbereich innerhalb deiner frameset-seite);

    der fuer das oeffnen des fensters zustaendige funktionsaufruf
       aus einem document im frame "down" sieht dann abgewandelt so aus:
       <a href="javascript:top.onClickSitemap('framecomyest.html','top');">

    der zugriff auf die jeweilige frame-location aus diesem fenster
       heraus erfolgt dann ueber den opener (das top-frame-document)
       in der art:

    opener.top.frames["top"].location.href = [url]   bzw.
       opener.top.frames["down"].location.href = [url]   und

    vielleicht benennst Du Deinen frame "top" der schoenheit und
       meiner browser-paranoia halber noch um ?

    tschuess und by(t)e by(t)e - peterS. - pseliger@gmx.net

    1. hallo again Abulafia,

      opener.top.frames["top"].location.href = [url]   bzw.
      opener.top.frames["down"].location.href = [url]   und

      das war ein klassischer schnellschuss:

      auf das ".top" kann natuerlich verzichtet werden, denn
         wir wir wissen, ist der opener schon der top-frame fuer
         ["top"] und ["down"] ... doch ... wenn ich es mir recht
         ueberlege, muesste sogar das erste konstrukt funktionieren,
         denn mit dem ".top" in "opener.top" verweise ich nur auf
         den opener selbst  -  also:  sowohl

      opener.top.frames["top"].location.href = [url]   und
         opener.top.frames["down"].location.href = [url]   als auch

      opener.frames["top"].location.href = [url]   und
         opener.frames["down"].location.href = [url]

      sollten zum gewuenschten ergebnis fuehren, wobei das letzte
         beispiel unbedingt funktionieren sollte  -  bye  -  peterS.