Ankündigung

Einklappen
Keine Ankündigung bisher.

Neues Fenster per Button öffnen

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Neues Fenster per Button öffnen

    Hallo,
    um ein neues Fenster per Link zu öffnen, geht das mit folgendem Code:
    HTML-Code:
    <html>
    <head>
    <title>Kein Titel</title>
    <script language="JavaScript">
    <!--
    function na_open_window(name, url, left, top, width, height, toolbar, menubar, statusbar, scrollbar, resizable)
    {
      toolbar_str = toolbar ? 'yes' : 'no';
      menubar_str = menubar ? 'yes' : 'no';
      statusbar_str = statusbar ? 'yes' : 'no';
      scrollbar_str = scrollbar ? 'yes' : 'no';
      resizable_str = resizable ? 'yes' : 'no';
      window.open(url, name, 'left='+left+',top='+top+',width='+width+',height='+height+',toolbar='+toolbar_str+',menubar='+menubar_str+',status='+statusbar_str+',scrollbars='+scrollbar_str+',resizable='+resizable_str);
    }
    // -->
    </script>
    </head>
    <body bgcolor="white" text="black" link="blue" vlink="purple" alink="red">
    <p>neues <a href="javascript:na_open_window('arbeitsbereiche', 'file:arbeitsbereiche.html', 200, 200, 300, 300, 0, 0, 0, 1, 1)" target="_self">fenster</a></p>
    </body>
    </html>
    Ich möchte jedoch in einem Form die gleiche Funktion per Button ausführen. Mein Code funktioniert jedoch nicht. Es gibt keine Reaktion.
    HTML-Code:
    <head>
    <script language="JavaScript">
    <!--
    function na_open_window(name, url, left, top, width, height, toolbar, menubar, statusbar, scrollbar, resizable)
    {
      toolbar_str = toolbar ? 'yes' : 'no';
      menubar_str = menubar ? 'yes' : 'no';
      statusbar_str = statusbar ? 'yes' : 'no';
      scrollbar_str = scrollbar ? 'yes' : 'no';
      resizable_str = resizable ? 'yes' : 'no';
      window.open(url, name, 'left='+left+',top='+top+',width='+width+',height='+height+',toolbar='+toolbar_str+',menubar='+menubar_str+',status='+statusbar_str+',scrollbars='+scrollbar_str+',resizable='+resizable_str);
    }
    // -->
    </script>
    <script language="JavaScript">
    <!--
    document.getElementById("arbeitsbereiche").onclick = na_open_window('arbeitsbereiche', 'file:arbeitsbereiche.php', 200, 200, 300, 300, 0, 0, 0, 1, 1)
    // -->
    </script>
    </head>
    
    <body bgcolor="white" text="black" link="blue" vlink="purple" alink="red" leftmargin="0" marginwidth="0" topmargin="0" marginheight="0">
    <form name="suchen" method="GET" action="objekte.php">
    <button type="button" id="arbeitsbereiche" style="font-family:'Arial'; font-weight:bold; color:rgb(255,0,0);">...</button>
    </form>
    Das Form drumherum hat mit dem Button nicht zu tun. Das Button ist nur im Form eingebettet.
    Könnt Ihr mir bitte helfen?

  • #2
    Mein Code funktioniert jedoch nicht.
    Die onevent-Properties erwarten einen Wert vom Typ Funktion, nicht den Rückgabewert einer Funktion.

    Kommentar


    • #3
      Zitat von Dormilich Beitrag anzeigen
      Die onevent-Properties erwarten einen Wert vom Typ Funktion, nicht den Rückgabewert einer Funktion.
      Danke für den Hinweis. Offenbar habe ich dafür zu wenig Kenntnisse. Gibt dafür eine geeignete Lösung oder muss ich es über einen Link machen?

      Kommentar


      • #4
        Hat nichts mit PHP zu tun.

        MOD: Verschoben von PHP-Einsteiger
        The string "()()" is not palindrom but the String "())(" is.

        Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
        PHP.de Wissenssammlung | Kein Support per PN

        Kommentar


        • #5
          Zitat von Ralphonso Beitrag anzeigen
          Gibt dafür eine geeignete Lösung
          Pack den Funktionsaufruf in eine anonyme Funktion.

          Zitat von Ralphonso Beitrag anzeigen
          oder muss ich es über einen Link machen?
          Links sind nicht dazu da, JavaScript-Funktionen aufzurufen, sondern um (externe) Resourcen per URL anzugeben. Seit es CSS gibt, kann man schließlich jedes Element wie einen Link aussehen lassen.

          Kommentar


          • #6
            Den Javascript Code solltest Du vor dem schließenden </body> einfügen. So bindest Du das onclick Ereignis an ein Element welches noch nicht geladen bzw. verarbeitet wurde.

            Das mit der anonymen Funktion wurde in #5 geschrieben und könnte wie folgt aussehen:

            HTML-Code:
            document.getElementById("arbeitsbereiche").onclick = function(){na_open_window('arbeitsbereiche',
                'file:arbeitsbereiche.php', 200, 200, 300, 300, 0, 0, 0, 1, 1)};
            Ist es sinnvoll, window.open in eine eigene Funktion zu packen und nur ein Kauderwelsch von Werten zu übergeben?

            Ist der folgende Standardfunktionsaufruf nicht besser lesebar?

            HTML-Code:
             window.open("https://www.php.de/", "_blank", "toolbar=yes,scrollbars=yes,
               resizable=yes,top=500,left=500,width=400,height=400");

            Kommentar

            Lädt...
            X