Frank: Funktion als Parameter

Hallo zusammen!

Mein Problem ist ziemlich spezifisch und ich habe gar keine Ahnung von Javascript, daher möchte ich vorab darum bitten, nur konkrete Antworten zu schreiben und nicht etwas wie: was du benutzt ist eh alles Schwachsinn, das geht auch viel besser oder: ich kenne da ein 400-seitiges Buch, wo das irgendwo drinstehen könnte...

Also ich benutze folgendes vorgefertigtes Menü:
http://rheinbreitbach.net/js-menue/js-menue.zip (leider zu groß zum kopieren)

Darin habe ich eine Funktion
function fenster(url,b,h,sb)
{ window.open (url,"inset","scrollbars="+sb+",resizable=no,width="+b+",height="+h+""); }
definiert.

Die Funktion Fenster hab ich aus dem Internet und benutze die auch in anderen Dateien ohne Probleme.
Jetzt will ich die allerdings innerhalb dieses Menüs benutzen, konkret heißt das, ich will innerhalb eines Menüeintrags der folgenden Form die Funktion fenster aufrufen:

mD.neu(new LE("","",HIER,"","",""))

Bislang ist mir das allerdings noch nicht gelungen und ich versuche es jetzt schon seit über einer Woche.
Kann mir da jemand helfen?

Gruß,
Frank

  1. hallo,

    ich habe gar keine Ahnung von Javascript, daher möchte ich vorab darum bitten, nur konkrete Antworten zu schreiben und nicht etwas wie: was du benutzt ist eh alles Schwachsinn, das geht auch viel besser oder: ich kenne da ein 400-seitiges Buch, wo das irgendwo drinstehen könnte...

    1. Was du benutzt, ist zwar nur bedingt Schwachsinn, geht aber vermutlich weit über das hinaus, was du tatsächlich benötigst.
    2. Das geht auch viel besser
    3. Ich kenne eine online-Dokumentation (die kein Verlag mehr vollständig auszudrucken wagt, weil es deutlich über 2000 Seiten würden), in der das irgendwo drinsteht.

    Also ich benutze folgendes vorgefertigtes Menü:
    http://rheinbreitbach.net/js-menue/js-menue.zip (leider zu groß zum kopieren)

    Ups. Es hätte der Verweis zum Original völlig ausgereicht. Und daß das Teil von 2000 ist, also schon ein paar Jährchen auf dem Buckel hat, ist dir klar? Es enthält zwar beeindruckende Arrays, aber zugleich auch HTML3-Elemente wie <font>, die du nicht mehr verwenden solltest.

    Solche Riesenkonstrukte sind einmal wirklich in bester Absicht entwickelt worden. Aber sie können heute in keiner Weise mehr standhalten. Sie taugen allenfalls als methodischer Vergleich, wie man an eine Aufgabenstellung herangehen könnte.

    Darin habe ich eine Funktion
    function fenster(url,b,h,sb)
    { window.open (url,"inset","scrollbars="+sb+",resizable=no,width="+b+",height="+h+""); }
    definiert.

    Deine Funktion erwartet vier Parameter.

    Die Funktion Fenster hab ich aus dem Internet

    Aha. Ich habe das Internet auch hier, aber ich finde da diese Funktion grade nicht. Vielleicht hast du ja ein anderes Internet als ich?

    Jetzt will ich die allerdings innerhalb dieses Menüs benutzen, konkret heißt das, ich will innerhalb eines Menüeintrags der folgenden Form die Funktion fenster aufrufen:
    mD.neu(new LE("","",HIER,"","",""))
    Bislang ist mir das allerdings noch nicht gelungen

    Das ist der einzig interessante Teil deines postings. Welche Fehlermeldungen hast du denn bekommen? "Nicht gelungen" ist bedauerlicherweise so ungenau, daß man dir nichts weiter dazu sagen kann.

    Kann mir da jemand helfen?

    Das kann bestimmt die Javascript-Konsole in Opera oder in Firefox.

    Was soll eigentlich ein Besucher deiner Adresse erleben, falls er Javascript deaktiviert hat?

    Grüße aus Berlin

    Christoph S.

    --
    Visitenkarte
    ss:| zu:) ls:& fo:) va:) sh:| rl:|
    1. Die Funktion ist schon klein geschrieben, nur hier vertippt.

      Ich bekomme gar keine Fehlermeldung, es passiert nur alles möglich außer dass sich ein neues Fenster öffnet. Schreib mir doch einfach, wie du die Funktion in dieses lächerliche veralterte Skript einbinden würdest, was dich geistlich vollkommen unterfordert, damit wäre mir sehr geholfen.
      Du kannst dir die Fehler aussuchen: die Seite lädt gar nicht wegen einem Syntaxfehler, die Seite versucht im Hauptframe irgendwas zu laden, was allerdings nicht gefunden wird, die Seite versucht dasselbe im Menüframe usw. - also quasi passiert alles nur nicht das richtige.

      Deine Sprüche mit Internet und ähnliche Kommentare, die mir zeigen sollen, dass du der allertollste und größte bist, kannst du dir in künftigen Postings übrigens auch schenken. Wenn du dich mal mit dem Problem auseinandersetzt statt hier sinnfreie Postings zu fabrizieren wirst du merken, dass das nicht so einfach ist.

      Wenn der User kein Javascript aktiviert hat, wird automatisch das Alternativmenü geladen, aber das hast du in deiner unendlichen Weisheit bestimmt schon lange gesehen.

      Aber wenn das Teil so schlecht und vollkommen überaltert ist, dann schick mir einfach einen Link zu einem neuen besseren Skript, was dasselbe kann - und am besten kein Javascript ist weils sonst auch eventuell nicht funktionieren könnte, es sei denn es lädt ein Alternativmenü und kann auch die ganzen anderen Sachen, die es so unnötig groß machen.
      Da 99% aller Seiten diese uralten Elemente benutzen, werde ich es auch weiterhin tun, genauso wie ich nicht heute meinen PC wegwerfe weil es seit gestern etwas schnelleres gibt.

      Ansonsten freue ich mich, dass die Tradition eingehalten wurde, dass der erste Kommentar in der Regel nur heiße Luft, dumme Kommentare und Halbwissen bzw. gar kein Wissen enthält.

      1. hallo,

        Die Funktion ist schon klein geschrieben, nur hier vertippt.

        Interessanter Zusatz, allerdings ist unklar, warum du ihn für nötig hältst.

        Ich bekomme gar keine Fehlermeldung, es passiert nur alles möglich außer dass sich ein neues Fenster öffnet.

        Ja, und worin äußert sich denn nun "alles mögliche", was da passiert?

        Schreib mir doch einfach, wie du die Funktion in dieses lächerliche veralterte Skript einbinden würdest

        Ich würde dieses Script gar nicht erst verwenden. Es ist sicher gut, um ein paar mögliche Prinzipien kennenulernen, wie man mit Javascript an ein solches Menü herangehen kann. Aber nur zum Vergleich. Schreibe dir dein eigenes Script, wenn du verstanden hast, was das Script tun soll.

        was dich geistlich vollkommen unterfordert

        Ich bin kein Geistlicher.

        Du kannst dir die Fehler aussuchen: die Seite lädt gar nicht wegen einem Syntaxfehler,

        Aha, und wie lautet der?

        die Seite versucht im Hauptframe irgendwas zu laden, was allerdings nicht gefunden wird,

        Aha, und was ist das und wieso kommt das jetzt in einen Frame?

        die Seite versucht dasselbe im Menüframe usw. - also quasi passiert alles nur nicht das richtige.

        Dann sagen dir die Javascriptkonsolen in Opera oder Firefox bestimmt, was da los ist. Was liest du denn da?

        Deine Sprüche mit Internet und ähnliche Kommentare, die mir zeigen sollen, dass du der allertollste und größte bist

        Das sollen sie nicht.

        Wenn du dich mal mit dem Problem auseinandersetzt [..] wirst du merken, dass das nicht so einfach ist.

        Ich habe gemerkt, daß es dir nicht gelingen will, eine konkrete Fehlerbeschreibung zu formulieren.

        Wenn der User kein Javascript aktiviert hat, wird automatisch das Alternativmenü geladen

        Sehr gut. Das ist doch wenigstens ein Lichtblick.

        Aber wenn das Teil so schlecht und vollkommen überaltert ist, dann schick mir einfach einen Link zu einem neuen besseren Skript, was dasselbe kann

        Du hast noch kein solches Script erstellt, oder zumindest ist es mir nicht bekannt.

        Ansonsten freue ich mich, dass die Tradition eingehalten wurde, dass der erste Kommentar in der Regel nur heiße Luft, dumme Kommentare und Halbwissen bzw. gar kein Wissen enthält.

        Es wird dich kaum wundern, daß ich diese Einschätzung nicht teilen kann. Es war schon ein bissel mehr darin. Versuche doch bitte, eine exakte Fehlerbeschreibung zu formulieren.

        Grüße aus Berlin

        Christoph S.

        --
        Visitenkarte
        ss:| zu:) ls:& fo:) va:) sh:| rl:|
        1. Wenn es dir hilft: ich hab jetzt einfach mal einen Menüeintrag wie folgt geändert:

          mD.neu(new LE("2bl","Mannschaft","javascript:fenster('mannschaften/team.php?team=1',200,200,'no')","","aufstellungen.gif","Unsere Mannschaft / Our team / Vårt lag / Notre équipe"))

          ...in der Hoffnung, es wird ein Fenster mit der Datei team.php geöffnet.
          Allerdings passiert gar nix und es erscheint nur ein Fehler:
          Fehler: Objekt erwartet
          Code: 0

          Nächster Versuch: Anführungszeichen um javascript... weggelassen
          Ergebnis: das Menü lädt gar nicht mehr

          Dritter Versuche: Statt javascript:fenster... einfach nur fenster geschrieben
          Ergebnis: Das Menü versucht im Hauptframe die Datei http://www.ttsvfraulautern.de/fenster('mannschaften/team.php?team=1',200,200,'no') zu laden, die es nicht gibt.

          Und so kann ich noch beliebig viele Fehler produzieren, allerdings schaffe ich es nicht, dass sich beim Anklicken des Menüpunktes ein Fenster öffnet. :-(

          1. hallo,

            Wenn es dir hilft: ich hab jetzt einfach mal einen Menüeintrag wie folgt geändert:
            mD.neu(new LE("2bl","Mannschaft","javascript:fenster('mannschaften/team.php?team=1',200,200,'no')","","aufstellungen.gif","Unsere Mannschaft / Our team / Vårt lag / Notre équipe"))

            Es geht nicht darum, daß mir geholfen werden müßte, sondern darum, daß du verstehst, wie du dein Menü bedienen kannst. Es steht doch deutlich genug drin:
            // Link-Eintrag: mD.neu(new LE("<UEBERGEORDNETER NAME>","<TEXT>","<URL>","<ZIEL>","<ICON>","<STATUSTEXT>"))

            An der Stelle, an der du eine URL eintragen solltest, trägst du aber eine Javascriptabfrage ein. Die Folge siehst du sofort:

            Fehler: Objekt erwartet

            Und so kann ich noch beliebig viele Fehler produzieren

            Das ist nicht nötig. Du mußt nur das nachlesen, was in deinem Script bereits drinsteht. Und dich daran halten.

            Grüße aus Berlin

            Christoph S.

            --
            Visitenkarte
            ss:| zu:) ls:& fo:) va:) sh:| rl:|
            1. Heißt das, das geht gar nicht? Auch allen HTML-Seiten benutze ich das auch als URL, nur halt mit javascript:fenster(), dann muss es doch auch irgendwie innerhalb eines Menüeintrages gehen, oder nicht?

              1. Ups, bisschen zu früh weggeschickt...
                Ich brauche mal eine konkrete Aussagen, WIE das geht und nicht, warum alles, was ich bisher versucht habe nicht geht. Warum das nicht geht, ist mir mehr oder weniger klar, das hilft mir aber nicht, es so hinzubekommen, dass es geht.

                Daher meine Frage: geht das mit dem Menü überhaupt und wenn ja, wie?

                1. hallo,

                  Ich brauche mal eine konkrete Aussagen, WIE das geht

                  molily hat dir drei sehr präzise Verweise aufgeshrieben zu moderneren Beispielen.

                  Warum das nicht geht, ist mir mehr oder weniger klar, das hilft mir aber nicht, es so hinzubekommen, dass es geht.

                  Du willst etwas, was dein Script nun einmal nicht hergibt. Baue dir ein neues Script oder nimm ein anderes.

                  Grüße aus Berlin

                  Christoph S.

                  --
                  Visitenkarte
                  ss:| zu:) ls:& fo:) va:) sh:| rl:|
      2. hi,

        Ansonsten freue ich mich, dass die Tradition eingehalten wurde, dass der erste Kommentar in der Regel nur heiße Luft, dumme Kommentare und Halbwissen bzw. gar kein Wissen enthält.

        Das war doch in diesem Falle schon im Eingangsposting so.

        gruß,
        wahsaga

        --
        /voodoo.css:
        #GeorgeWBush { position:absolute; bottom:-6ft; }
  2. Hallo,

    Du machst einem echt Lust, dir zu helfen...

    mD.neu(new LE("","",HIER,"","",""))

    Vielleicht einfach "javascript:fenster('...', '...', ...)"?

    Aber wenn das Teil so schlecht und vollkommen überaltert ist, dann schick mir einfach einen Link zu einem neuen besseren Skript, was dasselbe kann

    Z.B.
    http://onlinetools.org/tools/dom-tree-menu-puredom/
    http://www.silverstripe.com/downloads/tree/
    http://www.kryogenix.org/code/browser/aqlists/

    Mathias

    1. Leider funktioniert das so nicht, dann kommt ein Javascript-Fehler:
      Fehler: Objekt erwartet, Code 0