Hilfesuchender: Die Value eines <Param Name"... von fenster auslesen

Also ich muss aus einem anderen fenster das html basiert ist die Value eines param name von bekannter object id auslesen.

ich öffne das Fenster mit:

JS:--------------------------------------------------------------------------------
winpops=window.open(popurl,"Anmeldung",",width=800,height=600,resizable,scrollbars=yes,")

--------------------------------------------------------------------------------

!!!!!!!also hat das fenster den namen "Anmeldung"!!!!!!! oder falsch??? denn bei dem versuch noch ein Fenster zu öffnen und auch der angabe "Anmeldung" wird genau dieses fenster angesprochen!!!!!

Aus einem anderen Fenster das ich ebenfalls per winpops vom ersten Fenster as öffne will ich dann aus dem Fenster "Anmeldung" auslesen unzwar so:

JS:--------------------------------------------------------------------------------
var XYZ=Windows.Anmeldung.document.OBJECTID.PARAMNAME.value;

--------------------------------------------------------------------------------

also soll das Ergebniss in der Variable XYZ gespeichert werden.......wenn ich mir das Ergebniss hinschreiben lasse mit

JS:--------------------------------------------------------------------------------
Document.write(XYZ);

--------------------------------------------------------------------------------

kommt "undefined"

wer hat da ne idee oder gehts auch anders, weil ich lese im fenster Anmelden von einer anderen seite aus die ich nicht beeinflussen kann?

  1. hi

    var XYZ=Windows.Anmeldung.document.OBJECTID.PARAMNAME.value;

    hier dürfte dein fehler liegen. es heißt "window" und nicht "windows"
    http://selfhtml.teamone.de/navigation/syntax.htm#js_w

    Ferner kannst du afaik ein Fenster auch direkt mit namen ansprechen.
    http://selfhtml.teamone.de/javascript/objekte/window.htm#name

    Nach DOM-Syntax kannst du eine Element mit einer eindeutigen ID (eine id sollte immer eindeutig sein) via "getElementById" ansprechen
    http://selfhtml.teamone.de/javascript/objekte/document.htm#get_element_by_id

    so long
    ole
    (8-)>

  2. Hallo,

    ich öffne das Fenster mit:
    winpops=window.open(popurl,"Anmeldung",",width=800,height=600,resizable,scrollbars=yes,")

    Gut.

    Aus einem anderen Fenster das ich ebenfalls per winpops vom ersten Fenster as öffne will ich dann aus dem Fenster "Anmeldung" auslesen unzwar so:
    var XYZ=Windows.Anmeldung.document.OBJECTID.PARAMNAME.value;

    ^^^^^^^^^^^^^^^^^^^^^^^^^
    Nein, so klappt das _niemals_

    +----+   Popup P1 hat von der Existenz eines P2 keine
             | P1 |   Ahnung. Wenn du von P1 auf P2 zugreifen willst,
    +----+ > |    |   dann geht das nur über das Hauptfenster (opener)
    |    |   +----+
    | H1 |            im Hauptfenster hast du etwas wie:
    |    |   +----+   P1 = open("url","win1" ...)
    +----+ > | P2 |   P2 = open("url","win2" ...)
             |    |
             +----+

    In beiden Popups kannst du über opener auf das Hauptfenster zugreifen. Und nur der kennt beide Pupups. Klar? Du musst also diesen Umweg gehen. In P1 ist opener.P2 das Fenster des anderen Popups.

    var XYZ=Windows.Anmeldung.document.OBJECTID.PARAMNAME.value;

    ^^^^^^^^^^^^^^^^^^^^^^^^^
    Du ahnst es bereits? Aber ... so klappt das niemals.

    Über getElementById("objektid") bekommst du das Objekt. An die Values der Parameter kannst du IMHO nur über innerHTML und eine Suche in demselbigen herankommen.

    Also, im Ganzen: (von P1 aus)
    opener.P2.document.getElementById("objektid").innerHTML;

    Grüße,

    Jochen

    1. +----+   Popup P1 hat von der Existenz eines P2 keine
               | P1 |   Ahnung. Wenn du von P1 auf P2 zugreifen willst,
      +----+ > |    |   dann geht das nur über das Hauptfenster (opener)
      |    |   +----+
      | H1 |            im Hauptfenster hast du etwas wie:
      |    |   +----+   P1 = open("url","win1" ...)
      +----+ > | P2 |   P2 = open("url","win2" ...)
               |    |
               +----+

      Über getElementById("objektid") bekommst du das Objekt.
      Also, im Ganzen: (von P1 aus)
      opener.P2.document.getElementById("objektid").innerHTML;

      tja die von mir gewählte sytax war wirklich nicht die beste und fehlerhaft das gebe ich offen zu

      ich habe es nun auf dem wege gemchat wie du es beschireben hast und noch einen weitere wege versucht...

      --------------------
      ich lasse mir das ergebniss jeweils per Document.write(XYZ)  im body hinschreiben
      --------------------
      var XYZ=opener.p1.document.getElementById("objctid").paramname

      var XYZ=opener.p1.document.getElementById("objctid").paramname.innerHTML

      var XYZ=opener.p1.document.getElementById("objctid").innerHTML

      var XYZ=opener.p1.document.getElementByName("paramname").innerHTML

      --------------------
      ergebniss des document.write(XYZ) jeweils "undfined"

  3. S:--------------------------------------------------------------------------------

    var XYZ=Windows.Anmeldung.document.OBJECTID.PARAMNAME.value;

    Das ist Fantasie syntax.
    Lies noch mal genau deine Dokumentation, oder schmeiss sie weg, wen das da steht und nimm http://www.netzwelt.com/selfhtml/javascript/index.htm

    also soll das Ergebniss in der Variable XYZ gespeichert werden.......wenn ich mir das Ergebniss hinschreiben lasse mit

    Da du offensichtlich einen Fehler produzierst, solltest du dir Debugging Mechanismen überlegen.

    Woher weißt du das das passiert was du erwartest?
    Wo überprüfst du di Werte?

    var XYZ = Windows.Anmeldung.document.OBJECTID.PARAMNAME.value;

    Hier können schon 6 Fehler auftreten.

    Also teste ob die Werte überhaupt existieren:

    // in der Annahme, das 'Windows' vieleicht doch ein Tippfehler war
    alert(window);
    alert(window.Anmeldung);
    alert(window.Anmeldung.document);
    alert(window.Anmeldung.document.OBJECTID);
    alert(window.Anmeldung.document.OBJECTID.PARAMNAME);
    alert(window.Anmeldung.document.OBJECTID.PARAMNAME.value);

    var XYZ = Windows.Anmeldung.document.OBJECTID.PARAMNAME.value;
    Jetzt siehst du welcher Wert nicth vorhanden ist und ganz versuchen entsprechende Maßnahmen ergreifen.

    JS:--------------------------------------------------------------------------------

    Document.write(XYZ);


    kommt "undefined"

    selbst wenn nicht, dir ist klar, das du damit auch das aktuelle Dokument (wenn Document ein Tippfehler ist) überschreibst und damit auch kein Script mehr existiert?

    Struppi.

    1. also ich bin jetzt mal so vorgegangen wie es in antwort 2 zu lesen ist nur bei mir sind es nicht p1 und p2 sondern f1 und f2 und ich frage aus f2 das f1 ab!

      ich kontrolliere  mit

      alert(opener);----->[obejct]
      alert(opener.f1);------>[object]
      alert(opener.f1.objectid);------!!Alert erscheint nicht!!
      alert(opener.f1.document);------!!Alert erscheint nicht!!
      alert(opener.f1.paramname);----->undefined
      alert(opener.f1.paramname.value);------!!Alert erscheint nicht!!
      alert(opener.f1.Element);----->undefined
      alert(opener.f1.Element[0]);------!!Alert erscheint nicht!!
      alert(opener.f1.Element[1]);------!!Alert erscheint nicht!!
      alert(opener.f1.Element("objectid"));------!!Alert erscheint nicht!!
      alert(opener.f1.Element("oparamname"));------!!Alert erscheint nicht!!
      alert(opener.f1.GetElementById);------>undefined
      alert(opener.f1.GetElementById("objectid"));------!!Alert erscheint nicht!!
      alert(opener.f1.GetElementById[0]);------!!Alert erscheint nicht!!
      alert(opener.f1.GetElementById[1]);------!!Alert erscheint nicht!!
      alert(opener.f1.GetElementByName);------>undefined
      alert(opener.f1.GetElementByName("paramname"));------>!!Alert erscheint nicht!!

      ich habs auch mit GetElementByTag versucht....

      also wie würdest du oder sonst jemand ders gelesen hat nun weiter vorgehen??????

      gruss

      der Hilfesuchende

      1. Hallo,

        ich kontrolliere  mit

        alert(opener);----->[obejct]
        alert(opener.f1);------>[object]
        alert(opener.f1.document);------!!Alert erscheint nicht!!

        Dann hast du einen Fehler gemacht. Das MUSS gehen ...
        Lass doch mal das auf das wesentliche beschränkte javascript sehen. Idealerweise etwas was online ist.

        Viele Grüße,

        Jochen

        1. Oki Jochen um das active x nutzen zu können musst du natürlich dieses installieren das geht online ich habe das hauptfenster sowie fenster 2 online gestellt (fenster1) wird ja durch einen fremdserver generiert...

          lies dir bitte im hauptfenster den text durch das ist eine art erklärung, danke für deine mühe.

          in fenster 2 kontrolliere ich nur mit alert! mit rechtsklick holst du dir den quelltext.

          hier der die url zum hauptfenster:

          http://free.pages.at/odinrulez/hauptfenster.htm

          oder klick einfach oben unter meinem namen hab ihn auch als url eingetragen...

          danke nochmal

          1. hier der die url zum hauptfenster:

            http://free.pages.at/odinrulez/hauptfenster.htm

            ich kann nicht erkennen, was du überhaupt machen willst.
            Natürlich gibt es opener.f1 nicht, zumindest seh ich es nicht.

            Wo ist jetzt genau dein Problem.

            du öffnest ein Fenster (dir ist klar das ohne JS so wie du es machst nichts geht?)

            x = window.open(url, "name");

            dises Fenster sprichst du mit x an, wenn du einen Link in dieses Fenster setzten willst sprichst du es mit target="name" an.
            In diesem Fenster kannst du das ursprüngliche Fenster mit opener ansprechen und die Elemente in diesem Fenster mit opener.document.ElementName

            Was du jetzt genau davon machen willst, musst du rausfinden.

            Struppi.

            1. auszug aus dem hauptfenster:
              <body>
              <a href="#" onclick="f1=window.open('http://groups.msn.com/chat-de/chat.msnw','fenster1','width=800,height=600')"> hier klicken um die seite mit dem active x zu öffnen</a>

              in f1 das es sehr wohl gibt also im hauptfenster bekannt ist öffne ich die seite mit dem ActiveX siehe oben durch einen klick..
              ------------------------------------------

              dann öffne ich folgendes fenster f2

              <a href="#" onclick="f2=window.open('fenster2.htm','fenster2','width=800,height=600')"> hier klicken um nur mit alert zu kontrollieren</a>

              ------------------------------------------

              aus diesem fenster f2 will ich wie schon beschrieben eine bestimmte  value in f1 auslesen die mir durch <Object Id="ChatFrame"... und <PARAM Name="PassportProfile".... bekannt ist!!!!!!!

              also muss ich um diese in einer Variable zu speichern im FENSTER2!!!

              var XYZ=opener.f1.document.GetElementById("ChatFrame").PassportProfile;

              opener = bezug auf das Hauptfenster von dem aus f1 geöffnet wurde
              f1 = das fenster mit dem activex
              document = bezieht sich auf die seite in f1
              GetElementById("ChatFrame") = nimm das element mit der Id "ChatFrame"
              Passportprofile = ist der Name des <Param Name="PassportProfile"
              und von diesem PassportProfile die Value, welche ungefähr so lauten könnte value="zgbto874g850tg07.....", will ich eben dieses
              -->"zgbto874g850tg07....." <--
               haben als wert in der variable XYZ

              wenn ich nun IN FENSTER 2 kontrolliere mit alert(opener.f1);, nur um zu sehen was ich da auslese und wo der fehler beginnt, erscheint [object] gehe ich weiter, mit zum beispiel alert(opener.f1.document); kommt undefined bzw in dem fall verschwindet das alert ganz, setze ich für document frames ein erschein nochmal [Object] siehe auch quelltest des fensters f2.....

              das prinzip habe ich aus aus der Antwort auf meine frage die (IM MOMENT) genau hier drunter (auf der forumsseite stehen müsste).

              ums nochmal kurz zu erklären:
              ich habe ein hauptfenter damit öffne ich fenster
              f1=window.open(url... ---darin enthalten das auszulesende Object bzw die value die ich brauche
              sowie
              f2=window.open(url... darin enthalten der auslese mechanismuss (bzw hier nur der kontrollmechanismus was ausgelesen wird da ich eben nur fehler bzw. undefined erhalte.

              hier nochmal die urlzm nachschauen im quelltext:
              http://free.pages.at/odinrulez/hauptfenster.htm

              1. auszug aus dem hauptfenster:
                <body>
                <a href="#" onclick="f1=window.open('http://groups.msn.com/chat-de/chat.msnw','fenster1','width=800,height=600')"> hier klicken um die seite mit dem active x zu öffnen</a>

                ....

                dann öffne ich folgendes fenster f2

                <a href="#" onclick="f2=window.open('fenster2.htm','fenster2','width=800,height=600')"> hier klicken um nur mit alert zu kontrollieren</a>


                aus diesem fenster f2 will ich wie schon beschrieben eine bestimmte  value in f1 auslesen die mir durch <Object Id="ChatFrame"... und <PARAM Name="PassportProfile".... bekannt ist!!!!!!!

                Das geht nicht.
                Du kannst nicht auf fremde Domains zugreifen. Es müßte auch eine Meldung kommen, die dir sowas sagt. Wenn das gehen würde, wäre das eine riesige Sicherheitslücke.

                Struppi.

                1. wenn das nicht geht wie kommts dann das man die newsseiten von heisse.de aulesen kann????

                  ich greife ja nur auf den inhalt des fensters zu nicht auf eine passwort datei oder ähnliches , der quelltext kann mir ja auch angezeigt werden unter bearbeiten quelltext.... ich möchte aber lieber mal die antwort von Jochen dazu abwarte, danke trotzdem.

                  1. wenn das nicht geht wie kommts dann das man die newsseiten von heisse.de aulesen kann????

                    wo kann man das?
                    Du kannst Domain übergreifend nicht auf die Inhalte des Dokumentes zugreifen, du kannst die URL ändern oder ein Fenster mit einem fremden Inhalt öffnen.

                    ich greife ja nur auf den inhalt des fensters zu nicht auf eine passwort datei oder ähnliches , der quelltext kann mir ja auch angezeigt werden unter bearbeiten quelltext.... ich möchte aber lieber mal die antwort von Jochen dazu abwarte, danke trotzdem.

                    Der kann dir auch nichts anderes erzählen.
                    Es geht nicht um Dateien, sondern um z.b. Formulare. du könntest z.b. in einem Frame (oder Fenster) ein Login Fenster von z.b. gmx öffnen und wenn du Zugriff darauf hättest, könntest du die Login Daten die jemand eingibt abfragen und das halte ich für ein Sicherheitslücke.

                    Struppi.

                    1. wenn das nicht geht wie kommts dann das man die newsseiten von heisse.de aulesen kann????

                      wo kann man das?
                      Du kannst Domain übergreifend nicht auf die Inhalte des Dokumentes zugreifen, du kannst die URL ändern oder ein Fenster mit einem fremden Inhalt öffnen.

                      mhh also zu der frage das habe ich schon auf diversen seiten gesehen fällt aber unter die rubrik PHP.

                      beispiele:

                      www.rendering.de (oben rechts)
                      http://www.allnews.de/central/?news=heise (mitte)

                      http://www.google.de/search?hl=de&ie=UTF-8&oe=UTF-8&q=heise+news&btnG=Google+Suche&meta= (diverses)

                      --------------------------------

                      das mit dem auslesen des passwortes etc... wie du beschireben hast würde dann aber auch ja nur klappen(sei es mal dahingestellt es ginge auf diesem wege) wenn der enduser es in einem fenster machen würde das och geöffnet habe!

                      gruss
                      hilfesuchender

                      1. wenn das nicht geht wie kommts dann das man die newsseiten von heisse.de aulesen kann????

                        wo kann man das?
                        Du kannst Domain übergreifend nicht auf die Inhalte des Dokumentes zugreifen, du kannst die URL ändern oder ein Fenster mit einem fremden Inhalt öffnen.

                        mhh also zu der frage das habe ich schon auf diversen seiten gesehen fällt aber unter die rubrik PHP.

                        Du hast auf Seiten gesehen, das per Javascript auf eine fremde Domain zugegriffen wird?

                        Das glaube ich nicht.

                        beispiele:

                        www.rendering.de (oben rechts)

                        Was ist da?

                        http://www.allnews.de/central/?news=heise (mitte)

                        Wie gesagt du kannst durchaus eine fremde Domain in ein Fenster laden, aber du hast keine Zugriff.

                        das mit dem auslesen des passwortes etc... wie du beschireben hast würde dann aber auch ja nur klappen(sei es mal dahingestellt es ginge auf diesem wege) wenn der enduser es in einem fenster machen würde das och geöffnet habe!

                        ja, eben deshalb darfst das der Browser auch nicht können, du könntest dies ja quasi als "Dienst" anbieten und dann auslesen und z.b. mit einem CGI bei dir speichern.

                        Aber wie schon x-mal gesagt es geht nicht und dein Browser zeigt dir auch diese Fehlermeldung an.

                        Struppi.

                        1. mhh also zu der frage das habe ich schon auf diversen seiten gesehen fällt aber unter die rubrik PHP.

                          Du hast auf Seiten gesehen, das per Javascript auf eine fremde Domain zugegriffen wird?

                          Das glaube ich nicht.

                          Lies dir bitte den ersten satz mal durch!!!!

                          www.rendering.de (oben rechts)

                          Was ist da?

                          Da wo heise news steht ... gugst du da!

                          http://www.allnews.de/central/?news=heise (mitte)

                          Wie gesagt du kannst durchaus eine fremde Domain in ein Fenster laden, aber du hast keine Zugriff.

                          Aber wie schon x-mal gesagt....

                          zum 2ten mal gesagt von dir!!! und nun auch von mir lies dir den ersten satz mal durch !!!

                          1. mhh also zu der frage das habe ich schon auf diversen seiten gesehen fällt aber unter die rubrik PHP.

                            Du hast auf Seiten gesehen, das per Javascript auf eine fremde Domain zugegriffen wird?

                            Das glaube ich nicht.

                            Lies dir bitte den ersten satz mal durch!!!!

                            Naja, das einzige was ich dir versuch zu erzählen und du auch sovhon durch probieren hättest rausfinden können, ist, das du nicht mit Javascript auf das DOKUMENT einer anderen Domain zugreifen kannst und du bringst mir als gegenbeispiel irgendwas wo fremde Seiten angezeigt werden. Das geht auch ohne PHP das geht sogar mit HTML.

                            www.rendering.de (oben rechts)

                            Was ist da?

                            Da wo heise news steht ... gugst du da!

                            siehe oben, wo ist da irgendwas wo JS auf eine fremde domain zugreift?

                            http://www.allnews.de/central/?news=heise (mitte)

                            Wie gesagt du kannst durchaus eine fremde Domain in ein Fenster laden, aber du hast keine Zugriff.

                            Aber wie schon x-mal gesagt....

                            zum 2ten mal gesagt von dir!!! und nun auch von mir lies dir den ersten satz mal durch !!!

                            d.h. wenn du irgendwas von PHP erzählst widerspricht das meiner Aussage????

                            Struppi.

          2. Hallo,

            Oki Jochen um das active x nutzen zu können musst du natürlich dieses installieren

            sorry, ich bin zwar kein penetranter IE Verweigerer, benutze ihn jedoch nur dann wenn es sich nicht vermeiden lässt. Und auf dem Firmen-PC will ich keinesfalls irgendwelche obskuren Active-X Komponenten installieren.

            Wenn du dich bis heute Abend noch etwas geduldest, bekommst du von mir ein Beispiel online.

            Grüße,

            Jochen

            1. Hallo,

              Wenn du dich bis heute Abend noch etwas geduldest, bekommst du von mir ein Beispiel online.

              wie versprochen findest du unter: http://www.maxx4u.de/self/pop2pop/test.html mein Beispiel.
              Das Hauptfenster öffnet 2 Popups, Popup 2 greift auf die Elemente in Popup 1 zu. Bei Formularen funktioniert das problemlos, Schwierigkeiten gibt es nur bei <object> Zum ausprobieren für die params habe ich die zticker.class aus selfhtml verwendet.
              Um auf die Parameter des Objektes in Popup1 zuzugreifen verwende ich folgenden Code:

              objekt = opener.p1.document.getElementsByTagName("object")[0];
              params = objekt.getElementsByTagName("param");

              Aus mir nicht ganz nachvollziehbaren Gründen meldet der IE (5.5) in der 2. Zeile einen "unerwarteten Aufruf oder Zugriff"
              Ich weiß jetzt nicht ob das so sein muss ... Darf man ja auch eigene - "fremde" Objekte nicht auslesen? Vielleicht probiere ich nachher noch aus was passiert wenn das <object> im gleichen Dokument ist ...
              Wohlgemerkt es handelt sich hier um die gleiche Domain! Struppi hat ja bereits erwähnt, dass es bei unterschiedlichen Domains _nicht_ geht. Aber das darfst du jetzt selber auch nochmal testen!

              Tja, wie auch immer. Dieses Beispiel klappt mit meinem Opera. Vielleicht kann ja einer der mitlesenden noch etwas zu Moz IE6 oder Netscape sagen.

              Viel Spaß,

              Jochen

              1. Hallo,

                Wenn du dich bis heute Abend noch etwas geduldest, bekommst du von mir ein Beispiel online.

                wie versprochen findest du unter: http://www.maxx4u.de/self/pop2pop/test.html mein Beispiel.

                Hallo Jochen, ich konnte gestern Abend leider nicht mehr online kommen... sorry aber ging leider wirklich nicht :-S

                ...als ich gerade versuchte auf deine "test"seite zuzugreifen erschien bei mir "Server nicht gefunden"... da das auch auf "http://www.maxx4u.de/" zutrifft nehme ich mal an du bist ein selfhoster.....

                es wäre nett, wenn du mir die 3 dateien einfach als .zip (rar oder ähnlisches geht auch) an meine email adresse(siehe oben) schicken könntest oder du mir sagst((schreibst) entweder hier oder per mail) wann ich bei dir am besten nochmal den zugriff versuche.

                MFG

                Sascha

                1. Hallo,

                  ...als ich gerade versuchte auf deine "test"seite zuzugreifen erschien bei mir "Server nicht gefunden"... da das auch auf "http://www.maxx4u.de/" zutrifft nehme ich mal an du bist ein selfhoster.....

                  nö, bin ich nicht. Wenn du mich nicht verrätst: schwöre! niemals ein Sterbenswörtchen davon zu erzählen. Ich bin bei Strato.

                  mir sagst((schreibst) entweder hier oder per mail) wann ich bei dir am besten nochmal den zugriff versuche.

                  jetzt :-) beeil dich bis bei Strato wieder irgendwas ausfällt.

                  Viele Grüße

                  Jochen

            2. mir ist gerade aufgefallen, dass unter nicht immer nachvollziehbaren Umständen der IE (5.5) mit meinem Beispiel abstürzt.
              Trotz   if(opener.p1.closed ....)   erkennt er anscheinend das schließen des Popups nicht (immer)?

              Am besten die Fenster in der Reihenfolge Pop2 - Pop1 - Hauptfenster schließen!

              Also, beklagt euch nicht bei mir .... ich wasche meine Hände in Unschuld.

              Grüße,

              Jochen

      2. Übrigens, probier das mal aus:

        alert(opener);----->[obejct]
        alert(opener.f1);------>[object]
        alert(opener.f1.objectid);------!!Alert erscheint nicht!!

        weil du einen Fehler erhälst, schau mal auf die Statusleiste.

        Dein problem wird hier beschrieben:
        http://www.google.de/search?num=30&hl=de&ie=ISO-8859-1&q="same+origin+policy"&meta=lr%3Dlang_de

        Struppi.