Joe: Problem mit Javascript-Funktion

Hallo!

mir ist folgendes bei einer Javascript-Funktion aufgefallen.

ich soll für ein projekt eine seite erstellen, die in einem bereich mit einem javascript-passwortschutz versehen ist.
das klappt auch alles so weit.wenn ich die seite zb. direkt anspreche http://mitglied.lycos.de/{mitgliedsnamen}/
dann öffnet sich die index.html und ich kann mich zu diesem passwortgeschütztenbereich durchklicken, soll heißen die javascript-abfrage kommt.
bloss wenn ich jetzt die url (zb. www.mein-name.de) nehme, dann klappt der javascript nicht.es wird zwar immer noch das eingabefenster angezeigt und wenn man das richtige eintippt passiert gar nichts mehr.
was müsste an der funktion geändert werden.
Zur Info: wenn die seite mit der url aufgerufen wird dann unterbindet diese das man den tatsächlichen pfad sieht(http://mitglied.lycos.de/{usw.}/).

hier die funktion:
<script language="JavaScript">
      <!--

function pw2() {
           UserEingabe = window.prompt("Bitte geben Sie das Passwort ein um weiter zukommen!!","");
           top.mainFrame.location.href=UserEingabe + ".html";
        }
      // -->
      </script>

vielen dank im voraus!

mfg

  1. hier die funktion:
    <script language="JavaScript">
          <!--

    function pw2() {
               UserEingabe = window.prompt("Bitte geben Sie das Passwort ein um weiter zukommen!!","");

    Ich habe deine Frage zwar nicht verstanden (glaube ich zumindest), aber eventuell ist dein Denkfehler hier:

    Lass dir doch mal die neue URL ausgeben mit einem alert:

    alert(UserEingabe + ".html");

    und entscheide ob das eine gültige URL ist.

    ansonsten ist geht nicht eine nutzlose Fehlerbeschreibung, guck mal hier ob du eine sinnvollere machen kannst. http://glasgoogle.de

    Struppi.

    1. Hallo!

      okay, meine frage ist ein bisschen "schlecht" formuliert.ist ja auch noch recht früh ;-)
      mal in kurzform:
      also die javascriptfunktion klappt wenn man die seite direkt anspricht (http://mitglied.lycos.de/usw.)
      wenn ich nun aber die url nehme die auf den lycos-webspace gerichtet ist klappt es nicht. die url unterbindet das der direkte pfad in der adresszeile angezeigt wird.

      wo liegt der fehler?

      mfg

      1. Hallo!

        okay, meine frage ist ein bisschen "schlecht" formuliert.ist ja auch noch recht früh ;-)
        mal in kurzform:
        also die javascriptfunktion klappt wenn man die seite direkt anspricht (http://mitglied.lycos.de/usw.)
        wenn ich nun aber die url nehme die auf den lycos-webspace gerichtet ist klappt es nicht. die url unterbindet das der direkte pfad in der adresszeile angezeigt wird.

        Ähm.

        1.) hast du mal probiert, was ich dir vorschlug?
        2.) hast du dir mal die Seite angekuckt die ich dir anbot?
        3.) solltest du ein bisschen zitieren, damit man weiss auf was du dich beziehst, da es nicht unbedingt üblich ist, dass man den ganzen Thread im Kopf hat und die mitlesenden Wissen, worauf du deine Aussagen beziehst.

        Es wird gern gesehen das, vor dem posten hier, die FAQ gelesen wird:http://forum.de.selfhtml.org/faq/

        Struppi.

  2. Hallo, Joe,

    ich soll für ein projekt eine seite erstellen, die in einem bereich mit einem javascript-passwortschutz versehen ist.

    Du bist dir der Nachteile eines JavaScript-Passwortschutzes bewusst, so mutmaße ich aufgrund deiner augenscheinlichen Maßnahmen zur Umgehung derselben, wieso verwendest du folglich nicht HTTP Basic Authentication? Siehe beispielsweise http://aktuell.de.selfhtml.org/artikel/server/htaccess/ und http://aktuell.de.selfhtml.org/artikel/server/htaccess-faq/. Bei Lycos ist dies meines Wissens möglich, ich kann mich jedoch irren.

    das klappt auch alles so weit.wenn ich die seite zb. direkt anspreche http://mitglied.lycos.de/{mitgliedsnamen}/

    Wie sieht dein Frameset-Konzept genau aus? Auf was würde sich die relative Adresse beziehen?

    dann öffnet sich die index.html und ich kann mich zu diesem passwortgeschütztenbereich durchklicken, soll heißen die javascript-abfrage kommt.

    Besteht diese Seite aus einem Frameset?

    bloss wenn ich jetzt die url (zb. www.mein-name.de) nehme, dann klappt der javascript nicht.es wird zwar immer noch das eingabefenster angezeigt und wenn man das richtige eintippt passiert gar nichts mehr.

    Siehe Struppis Postings - werde dir genau im Klaren darüber, welche Adresse du in welchem Frame mit welchem aktuellen Verzeichnis du mit der JavaScript-Zuweisung öffnest.

    was müsste an der funktion geändert werden.

    Ohne Wissen über dein Fensterkonzept kann dir das niemand verraten.

    Zur Info: wenn die seite mit der url aufgerufen wird dann unterbindet diese das man den tatsächlichen pfad sieht(http://mitglied.lycos.de/{usw.}/).

    Du nutzt ein Frameset, um die Adresse des geschützten Bereiches zu verstecken, um damit zu verhindern, dass jemand die Adresse weitergibt? Das kann nur scheitern, weil jeder die Adresse des Dokuments herausfinden kann und sie sogar mit jedem ausgehenden Link über den Referer-Header vom Browser verbreitet wird.

    <script language="JavaScript">

    Benutze besser type="text/javascript" anstatt des language-Attributs.

    top.mainFrame.location.href=UserEingabe + ".html";

    Interessant ist, welches Frameset du ansprichst beziehungsweise ansprechen willst. Mit »top« erreichst du immer das oberste Frameset (näheres auf http://aktuell.de.selfhtml.org/tippstricks/javascript/fensterzugriff/).
    Ich nehme an, dass zwei ineinander verschachtelte Framesets existieren, zum einen das »blinde« der Domain, welche nur eine Frame-Weiterleitung ist, und zum anderen das Frameset der Site auf Lycos:

    +----------------------------+
    |  +----------------------+  |<-- Frameweiterleitung von mein-name.de,
    |  |     | mainFrame      |  |    ein Frame, der die komplette Seite ausfüllt
    |  |     |                |  |
    |  |     |                |<----- Frameset auf Lycos, zwei Frames, der
    |  |     |                |  |    (angenommen) rechte mit dem Namen mainFrame
    |  |     |                |  |
    |  |     |                |  |
    |  +----------------------+  |
    +----------------------------+

    Ich vermute weiterhin, dass die JavaScript-Abfrage in einem anderen Frame als dem Frame durchgeführt wird, in welchem später die pseudo-passwortgeschützte Seite erscheinen soll, sonst hättest du vermutlich nicht top.mainFrame verwendet. Angenommen, es ist der im Beispiel linke Frame, in welchem die Abfrage (der von dir genannte Code) notiert ist. Folglich würde sich top.mainFrame auf einen Frame namens mainFrame im obersten Frameset (ergo das von mein-name.de) beziehen, ein solcher existiert jedoch nicht. Suchst du möglicherweise parent.mainFrame? Dies würde zumindest erklären, wieso dein Script beim Aufruf über mein-name.de nicht funktioniert.

    Vermutlich liege ich vollkommen daneben, aber deine bisherigen Erklärungen waren zu unpräzise. Wie Struppi sagt, schau dir die Fehlerausgabe des JavaScript-Interpreters deines Browsers an.

    Grüße,
    Mathias