fisch: Sitemap im Popup steuert Hauptfenster..ich bekomms nicht hin ;-(

hallo an alle,

ich habe folgendes Problem. ich habe eine sitemap die sich in einem popupfenster auf klick öffnen lässt. jetzt möchte ich damit das hauptfenster steuern und die sitemap soll stehen bleiben. ich habe im archiv schon was gefunden...aber meine probleme damit. also sorry, wenn ich nochmal nachfrage.

ich habe zwei varianten gefunden, welche beide nicht richtig funktionieren.

1: das script habe ich in die sitemap.htm gestopft

function myFunction()
{
 opener.location.href='http://whateveryouwant.org';
 self.close();  <---- da wird aber das sitemap fenster geschlossen. wie halte ich es offen.
}

<a href="#" onclick="myFunction();">Button</a>

wenn ich jetzt auf den button klicke steuere ich zwar das hauptfenster. aber die sitemap springt auch auf die angegebene url.

2:
Im Hauptfenster(von wo Sitemap aufgerufen wird):
function sitemap()
{
 var fst = window.open("sitemap.htm","fernsteuerung",'resizable,width=300,
                   height=490,top=50,left=50');

}

Sitemap:
function fernsteuern(URL1)
{

opener.parent.location.href=URL1;

}
Links in Sitemap:
<a href="javascript:fernsteuern
          ('index.htm');">Test</a>

funktioniert aber auch nicht bei mir. da tut sich gar nix, wenn cih auf den link klicke. bin leider nicht so bewandert mit javascript würde das problem aber gerne lösen. kann mir wer helfen?

danke und liebe grüsse

fisch

  1. hallo an alle,

    ich habe zwei varianten gefunden, welche beide nicht richtig funktionieren.

    ohne es gestestet zu haben, scheint mir die Kombination aus den beiden Lösungen funktionsfähig zu sein:

    Sitemap:
    function fernsteuern(URL1)
    {

    opener.location.href='http://whateveryouwant.org/'+URL1;

    }
    Links in Sitemap:
    <a href="javascript:fernsteuern
              ('index.htm');">Test</a>

    närrische Grüße

    1. Sitemap:
      function fernsteuern(URL1)
      {
         opener.location.href='http://whateveryouwant.org/'+URL1;

      }
      Links in Sitemap:
      <a href="javascript:fernsteuern
                ('index.htm');">Test</a>

      närrische Grüße

      danke sonya...habs  probiert. irgendwie funzt det net. kann das an den URL'S liegen? Blöde Frage: bei URL1 kommt ja der absolute pfad zur homepage hin, oder ?

      närrische grüsse zurück :-)

      Fisch

      1. danke sonya...habs  probiert. irgendwie funzt det net.

        was kriegst Du für Fehlermeldung?

        kann das an den URL'S liegen? Blöde Frage: bei URL1 kommt ja der absolute pfad zur homepage hin, oder ?

        Nö, wenn Du die Variable URL1 meinst, die hat nur den Dateinamen oder relative Pfadangabe als String. In der Funktion fersteueren() setzt Du dann vor dem übermittelten Dateinamen die absolute Adresse deiner Seite, d. h. dass location.href genau die Zeichenfolge bekommt, die Du auch in die Adresszeile Deines Browsers "zu fuss" eintippen würdest.

        Sonya

        1. habs jetzt so gemacht und bekomme einen javascript fehler --> Bezeichner erwartet ??

          function fernsteuern ("../index.htm")
          {

          opener.location.href='http://zoociety.de/'+"../index.htm";

          }

          lg

          Fisch

  2. Hi,

    self.close();  <---- da wird aber das sitemap fenster geschlossen. wie halte ich es offen.

    Was soll denn dann überhaupt geschlossen werden? Du meinst wahrscheinlich opener.focus() oder self.blur()

    <a href="#" onclick="myFunction();">Button</a>

    wenn ich jetzt auf den button klicke steuere ich zwar das hauptfenster. aber die sitemap springt auch auf die angegebene url.

    onclick="myFunction();return false;"
    Damit verhinderst Du, dass href="#" zusätzlich ausgeführt wird. Letzteres lädt das Sitemap-Fenster nämlich noch einmal neu, und zwar beim Default-Anker am Seitenanfang. Möglicherweise ist die opener-Variable des Sitemap-Fensters anschließend sogar auf sich selbst gerichtet.

    var fst = window.open("sitemap.htm","fernsteuerung",'resizable,width=300,
                       height=490,top=50,left=50');

    <a href="javascript:fernsteuern
              ('index.htm');">Test</a>

    Hast Du mal in der Javascript-Konsole nach Fehlermeldungen geschaut? Ich habe den Verdacht, dass die Zeilenumbrüche auch im Quelltext so stehen. Dann kann natürlich nichts funktionieren.

    opener.parent.location.href=URL1;

    Das bedeutet, dass das Sitemap-Fenster aus einem Frame heraus geöffnet wurde, der ein parent-Fenster besitzt, das Du durch die neue Seite ersetzen willst. Ist das so?

    Salokin

    1. Hallo,

      also ich habe jetzt folgendes gemacht:

      in der hauptseite über welche die sitemap aufgerufen wird ist folgendes javascript:

      function sitemap()
      {
       var fst = window.open ("../sites/sitemap.htm","fernsteuern","width=350,scrollbars=yes,height=570,left=630,top=110");
      }

      sitemap wird über link javascript:sitemap( )geöffnet.
      das funktioniert einwandfrei.

      in der sitemap selbst ist folgendes javascript:
      function myFunction()
      {
       opener.location.href='http://www.meineurl.de';
       self.close();
      }

      und die buttons verlinkt mit:
      <a href="index.htm" onclick="myFunction(); return false;" >Home</a>
      <a href="studio.htm" onclick="myFunction(); return false;" >Studio</a>

      funktioniert soweit einwandfrei. nur das die sitemap durch den befehl self.close(); geschlossen wird.

      also habe ich das rausgenommen. jetzt belibt es zwar offen, aber ich steuere immer nur www.meineurl.de an und nicht die inzelnen unterseiten. ???

      liebe grüsse

      Fisch

      1. Hallo,

        function myFunction()
        {
         opener.location.href='http://www.meineurl.de';
         self.close();
        }

        Natürlich wird www.meineurl.de aufgerufen -> steht ja in Deinem Script.

        Probiers mal so:

        function myFunction(theurl)
        {
         opener.location.href=theurl;
         self.close();
        }

        <a href="index.htm" onclick="myFunction('index.htm'); return false;" >Home</a>
        <a href="studio.htm" onclick="myFunction('studio.htm'); return false;">Studio</a>

        Damit solltest Du die richtige "url" (in diesem Fall ja nur der Dateiname) an Deine Funktion übergeben.

        Lg,
        sunny

        1. Ohne das

          self.close();

          natürlich, das wolltest Du ja nicht haben, sorry, hab ich wohl übersehen.

          Lg,
          sunny

          1. Danke für den Tipp sunny,

            aber jetzt öffnet das popup die seiten in sich selbst und steuert nicht mehr die hauptseite an.
            ich muss hier erstmal ein paar fenster schliessen. ich verlier langsam den überblick :-)

            ich hätte nicht gedacht, das das so komüliziert ist. wahrscheinlich stell ich mich grad ein bisserl deppert an.

            lg

            fisch

            1. Hi,

              aber jetzt öffnet das popup die seiten in sich selbst und steuert nicht mehr die hauptseite an.

              Hm, das sollte eigentlich nicht so sein.
              Gibts das Ganze vielleicht auch irgendwo online zu sehen?

              Du könntest auch noch versuchen die Leerzeichen rauszunehmen:

              <a href="index.htm" onclick="myFunction('index.htm');return false;">Home</a>

              Lg,
              sunny

              1. Hab mir das jetzt nochmal angeschaut - das PopUp könntest Du auch etwas "besser" öffnen:

                function sitemap() {
                 window.open("../sites/sitemap.htm","fernsteuern","width=350,scrollbars=yes,height=570,left=630,top=110");
                }

                Du brauchst da eigentlich keine zusätzliche Variable soweit ich sehen kann.

                <a href="../sites/sitemap.htm" target="_blank" onClick="sitemap();return false;">Sitemap</a>

                So funktioniert der Link auch wenn jemand JS ausgeschalten hat.
                Dann wird Deine Sitemap einfach in einem neuen (normalen Browser-) Fenster geöffnet. Das mit dem Laden der neuen Seite in den openers funktioniert zwar natürlich nicht wenn JS ja ausgeschalten ist, aber man bekommt Deine Sitemap immerhin zu sehen.

                Das wird jetzt zwar Dein Problem nicht lösen, aber ändern solltest Du es trotzdem ;-)

                Lg,
                sunny

    2. Hallo salokin,

      self.close();

      hat das sitemap fenster geschlossen. hab ich einfach weggemacht.

      onclick="myFunction();return false;"

      return false funktioniert..danke.

      Hast Du mal in der Javascript-Konsole nach Fehlermeldungen geschaut? Ich habe den Verdacht, dass die Zeilenumbrüche auch im Quelltext so stehen. Dann kann natürlich nichts funktionieren.

      keine fehlermeldung. da ist alles o.k !

      opener.parent.location.href=URL1;

      Das bedeutet, dass das Sitemap-Fenster aus einem Frame heraus geöffnet wurde, der ein parent-Fenster besitzt, das Du durch die neue Seite ersetzen willst. Ist das so?

      nein. aus einem frame wird die sitemap nicht geöffnet. ich habe keine frames benutzt. sitemap wird nur über einen link auf der seite geöffnet

      Grüsse

      Fisch