Roland: Auswahlmenü mit JavaScript gem. SELFHTML-Quickbar

Hallo,

ich baue solch ein Auswahlmenü in meine Page, also wie nachfolgend, habe jedoch ein klitzekleines Problemchen, mit dem ich nicht klarkomme.

Zunächst das Beispiel:

<script language="JavaScript">
<!--
function Go(x)
{
if(x == "nothing")
{
document.forms[0].reset();
document.forms[0].elements[0].blur();
parent.frames[3].focus();
return;
}
else
{
top.location.href = x;
document.forms[0].reset();
document.forms[0].elements[0].blur();
parent.frames[3].focus();
}
}
//-->
</script>

Dort, wo es "top.location.href= x; heisst, wird beim Anklicken eines Links im Auswahlmenü eine Html-Datei im ganzen Anzeigefenster des Browsers angezeigt! Das ist auch soweit schön, jedoch möchte ich, dass diese Datei in einem neuen, zweiten Browserfenster angezeigt wird, ähnlich wie beim target="_blank"-Befehl. Wie also muss ich obigen Script abändern?

Vielen Dank für Eure Hilfe!

Roland

  1. Hallo Roland,

    Dort, wo es "top.location.href= x; heisst, wird beim Anklicken eines Links im Auswahlmenü eine Html-Datei im ganzen Anzeigefenster des Browsers angezeigt! Das ist auch soweit schön, jedoch möchte ich, dass diese Datei in einem neuen, zweiten Browserfenster angezeigt wird, ähnlich wie beim target="_blank"-Befehl. Wie also muss ich obigen Script abändern?

    Du darfst dann nicht mit top.location.href die Datei adressieren, sondern musst anstelle dessen ein neues Fenster fuer sie oeffnen, etwa so:

    F = window.open(x,"Fenster","menubar=yes,locationbar=yes,status=yes");

    viele Gruesse
      Stefan Muenz

    1. Vielen Dank für die schnelle Antwort! Habe das Script dementsprechend geändert. Was muss ich noch daran ändern, um ...

      a)auch die anderen Symbolleisten, wie Adressleiste und Standardschaltflächen in dem neuen Browserfenster zu haben? -und

      b)das Browserfenster nicht gleich an die Taskleiste runtersausen zu lassen? Ich möchte , dass es entweder in voller Grösse am Bildschirm erscheint (das erste Fenster komplett verdeckt) oder aber in 1/3 der Grösse erscheint zum "selber-maximieren"... wie kriege ich das wieder hin?

      Ich bin Dir echt dankbar, dass Du mir hilfst!

      Roland

      Script bis dato:
      ------------------------------
      <script language="JavaScript">
      <!--
      function Go(x)
      {
      if(x == "nothing")
      {
         document.forms[0].reset();
         document.forms[0].elements[0].blur();
         parent.frames[3].focus();
         return;
      }
      else
        {
         F = window.open(x,"Fenster","menubar=yes,locationbar=yes,status=yes");
         document.forms[0].reset();
         document.forms[0].elements[0].blur();
         parent.frames[3].focus();
        }
      }
      //-->
      </script>

  2. Achtung! Habe mich mittels SELFHTML ein wenig eingelesen und den von Stefan Münz gebrachten Vorschlag entsprechend meinen zuletzt bestehenden Problemenelse noch etwas abgeändert:

    ANSTELLE:

    {
       F = window.open(x,"Fenster","menubar=yes,locationbar=yes,status=yes");
       document.forms[0].reset();
       document.forms[0].elements[0].blur();
       parent.frames[3].focus();
      }
    }
    //-->
    </script>

    JETZT:

    else
      {
       F = window.open(x,"Printfenster","height=500,width=550,menubar=yes,locationbar=yes,resizable=yes,hotkeys=yes,status=yes");
      }
    }
    //-->
    </script>

    Die letzten 3 Zeilen des unter ANSTELLE genannten Scriptteils waren glaube ich völlig überflüssig (so ist das beim Klauen..) und ergeben die neue Situation, dass das neue Browserfenster sich jetzt NICHT MEHR von selber minimiert! Stefan meint mit menubar=yes, locationbar=yes sicherlich die Symbolleisten-Darstellung, aber das klappt einfach nicht!!! Warum nicht? Und was ist eine Statuszeile??

    Bitte helft mir!

    Roland
    mailto:rbion@netcologne.de?subject=JS-Problemchen

    1. Hallo,

      ANSTELLE:
      ...
         F = window.open(x,"Fenster","menubar=yes,locationbar=yes,status=yes");
      ...
      JETZT:
         F = window.open(x,"Printfenster","height=500,width=550,menubar=yes,locationbar=yes,resizable=yes,hotkeys=yes,status=yes");
      Die letzten 3 Zeilen des unter ANSTELLE genannten Scriptteils waren glaube ich völlig überflüssig (so ist das beim Klauen..) und ergeben die neue Situation, dass das neue Browserfenster sich jetzt NICHT MEHR von selber minimiert! Stefan meint mit menubar=yes, locationbar=yes sicherlich die Symbolleisten-Darstellung, aber das klappt einfach nicht!!!

      Die letzen drei Zeilen (nicht mit gequotet)? Nein, die sind kaum verantwortlich fuer den Effekt, wenn auch wirklich hier nicht notwendig oder sogar unbrauchbar.
      Das mit dem Minimieren oder Nicht-Minimieren hat IMHO eine andere Ursache.
      Was ist "locationbar=yes"?
      Funktioniert das ueberhaupt?
      Meines Wissens heisst das "location".
      Die Browser haben die "Angewohnheit", mit der Interpretation des Parameterstrings dort aufzuhoeren, wo sie auf Fehler treffen. Damit wuerde das, was dahinter steht (hier: resizable) unwirksam.
      Probier es mal aus.
      Noch ein Tip:
      Den Paramterstring kannst Du Dir auf dieser Seite hier einfach nach Wunsch generieren lassen:
      http://screenexa.net/js_notiz/tips/win00.htm,
      ankreuzen, was Du haben moechtest, mal probewiese anzeigen lassen, wenn es gefaellt, String kopieren. Lass Dich nicht irritieren, bei mir steht statt "yes" oder "no"  "1" oder "0", das macht aber keinen Unterschied.

      Klappt es jetzt?
      Christine

      1. Hallo,

        Das mit dem Minimieren oder Nicht-Minimieren hat IMHO eine andere Ursache.

        Welche? Seitdem ich die letzten 3 Zeilen gelöscht habe, ist dieser unschöne Effekt weg!

        Was ist "locationbar=yes"? Funktioniert das ueberhaupt? Meines Wissens heisst das "location".

        Laut SELFHTML und Stefan Münz ist damit wohl die URL-Navigationsleiste gemeint! Siehe hier:
        <A HREF="../../tecb.htm#a35">../../tecb.htm#a35</A>
        Allerdings ist Deine Bemerkung richtig, dass es wohl location=1 (bzw. yes) heissen muss und NICHT locationbar wie in SELFHTML. Jetzt ist nämlich auch die URL-Leiste in dem Browserfenster zu sehen!
        Aber noch etwas kann nicht ganz stimmen (das hat schonmal jemand hier im Forum die Tage geschrieben):
        "resizable=yes" soll die Voreinstellung sein! Das kann nicht ganz richtig interpretiert werden vom IE4.0, denn dieser lässt die Veränderung der Grösse nur zu, wenn "resizable=yes" angegeben ist!

        Die Browser haben die "Angewohnheit", mit der Interpretation des Parameterstrings dort aufzuhoeren, wo sie auf Fehler treffen. Damit wuerde das, was dahinter steht (hier: resizable) unwirksam. Probier es mal aus.

        Was meinst Du damit? Wo liegt denn der Fehler? Und was hat "resizable" damit zu tun in diesem Zusammenhang?

        Noch ein Tip:
        Den Paramterstring kannst Du Dir auf dieser Seite hier einfach nach Wunsch generieren lassen:
        http://screenexa.net/js_notiz/tips/win00.htm,
        ankreuzen, was Du haben moechtest, mal probewiese anzeigen lassen, wenn es gefaellt, String kopieren>
        Klappt es jetzt?

        Vielen Dank für den Tip? Ich habe jetzt nach deren String-Generation folgenden:
        "resizable=1,location=1,navigation=1,directories=1,status=1,menubar=1,scrollbars=1,toolbars=1,width=550,height=500"

        Wie Du siehst, auch hier location=1 (nicht locationbar!), aber wofür steht directories, status (was ist eine Statuszeile?), toolbars,??
        Es klappt jedenfalls nicht, dass mein Browserfenster eine eigene Menüleiste mit Browserbefehlen hat! Dafür muss doch "menubar" verantwortlich sein!! Habe es sogar schon mit "menu=1" wie bei "location=1" versucht, geht aber auch nicht :-((

        Kann mir jemand helfen???

        Roland

        1. Hallo Roland!

          Die Browser haben die "Angewohnheit", mit der Interpretation des Parameterstrings dort aufzuhoeren, wo sie auf Fehler treffen. Damit wuerde das, was dahinter steht (hier: resizable) unwirksam. Probier es mal aus.

          Was meinst Du damit? Wo liegt denn der Fehler? Und was hat "resizable" damit zu tun in diesem Zusammenhang?

          Christine meint wohl, daß wenn ein einziger Parameter vom Browser nicht "verstanden" wird (zum Beispiel, wie Du meinst, locationbar=... wird nicht interpretiert, weil nicht verstanden), dann alle weiteren Paramter, die in der Zeile folgen, auch nicht interpretiert werden: dr Browser hört da auf, wo er etwas nicht "versteht"... Und wenn "resizable" hinter solch einem nicht "verstandenen" Parameter steht, wird er nicht interpretiert!

          Aber noch etwas kann nicht ganz stimmen (das hat schonmal jemand hier im Forum die Tage geschrieben):

          "resizable=yes" soll die Voreinstellung sein! Das kann nicht ganz richtig interpretiert werden vom IE4.0, denn dieser lässt die Veränderung der Grösse nur zu, wenn "resizable=yes" angegeben ist!

          Der Jemand war ich wohl: ich hatte die Vermutung geäußert, daß die "Voreinstellungen" in diesem Fall, wie bei Framesborders und Tabellenborders, von Browser zu Browser unterschiedlich sind. Wie es scheint, ist es wirklich so...

          aber wofür steht directories, status (was ist eine Statuszeile?), toolbars,??

          Wenn ich auf Christines Beispielseite directories=1 angebe, habe ich mit dem Internet Explorer diese Leiste, die sonst neben der URL-Zeile ist, und die die voreingestellten Links wie "Channel Guide", "Das Beste im WEB", "internetstart" usw...

          "status=1" erzeugt die Statusleiste (unten die)

          und "toolbars" scheint beim IE gar nichts zu bewirken...

          Es klappt jedenfalls nicht, dass mein Browserfenster eine eigene Menüleiste mit Browserbefehlen hat! Dafür muss doch "menubar" verantwortlich sein!! Habe es sogar schon mit "menu=1" wie bei "location=1" versucht, geht aber auch nicht :-((

          Also mit menubar=1 erreichst Du, daß die Menüleiste (ich spreche vom IE) angezeigt wird. Aber sprechen wir vom Gleichen? Die Menüleiste ist diejenigen mit den Optionen "Datei", "Bearbeiten", "Ansicht", usw...
          Wenn Du die Leiste mit den Schaltflächen meinst, also mit den Buttons "Zurück", "Vorwärts", "Abbrechen", usw..., die kriege ich auch nicht hin :-((( Dafür sollte eigentlich "toolbars" stehen, scheint mit dem IE aber nicht zu funzen! Christine?

          Bis danndann

          PAF (patrickausfrankfurt)

          1. Hallo,

            Der Jemand war ich wohl: ich hatte die Vermutung geäußert, daß die "Voreinstellungen" in diesem Fall, wie bei Framesborders und Tabellenborders, von Browser zu Browser unterschiedlich sind. Wie es scheint, ist es wirklich so...

            Auf Voreinstellungen wuerde ich mich nicht verlassen, es sei denn, irgendwo ist exakt definiert,
            was im Standardfall passieren soll.

            und "toolbars" scheint beim IE gar nichts zu bewirken...

            Beim Navi auch nicht :-(((
            Das ist naemlich schlicht und ergreifend ein Fehler in meiner Seite, muss
                   "toolbar"     heissen   (ohne s)
            Dann klappt es mit auch mit beiden Browsern.

            Die Seite ist schon sooooo alt, und bisher hat das noch niemand bemerkt (oder mir nur nicht gesagt?)

            Wenn Du die Leiste mit den Schaltflächen meinst, also mit den Buttons "Zurück", "Vorwärts", "Abbrechen", usw..., die kriege ich auch nicht hin :-((( Dafür sollte eigentlich "toolbars" stehen, scheint mit dem IE aber nicht zu funzen! Christine?

            S.o. Danke.  Das muss ich unbedingt aendern.

            Christine