Dr. Pest: Mehrere Fenster (Prozesse) miteinander kommunizieren lassen

Hi,
ich habe folgendes Problem. Und ich hoffe ich es kann es richtig ausdrücken.^^

Ich hab vor bei einer Webanwendung im Hintergrund ein Javascript laufen zu lassen (im Frame), das von einer Datei aus alle 30s Daten abholt. Bei bestimmten Daten, soll ein PopUp aufpoppen und ein Alarmton piepsen. Das sollte theoretisch kein Problem sein.
Nur:
Es ist oft so, dass die Webanwendung mehr als nur einmal offen ist, sprich drei- oder auch sechsmal. Jetzt sollen natürlich nicht sechs Popups und 6 Alarmtöne erscheinen.

Ich würde das theoretisch so lösen, dass jedes Javascript zu Beginn einer jeden Schleife schaut, ob es schon ein "Main Javascript" gibt. Wenn ja macht es nichts, außer nach 30s nochmals prüfen. Gibt es kein "Main Javascript" (was beim öffnen der Anwendung oder bei Beendigung des "MAinFensters" auftritt) wird es selbst zu diesem. So kann nur das "MainJavascript" ein Popup und den Alrm auslösen.

Jetzt bin ich mir aber unsicher darüber, ob so ein JavaScript überhaupt ein anderes in einem 2. oder 3. Programm sehen kann (also den Namen dieser) ohne, dass es ihn kennt. Es müsste sozusagen "überglobal" sein.

Würde es so gehen, und wenn ja wie? Oder ist das mit Javascript nicht möglich? Andere Vorschläge?

Danke für die Antworten!

  1. Hi,

    Ich hab vor bei einer Webanwendung im Hintergrund ein Javascript laufen zu lassen (im Frame), das von einer Datei aus alle 30s Daten abholt. Bei bestimmten Daten, soll ein PopUp aufpoppen und ein Alarmton piepsen. Das sollte theoretisch kein Problem sein.

    sofern Du den Popup-Blocker, den heutzutage im Prinzip jeder Browser besitzt, deaktivierst, sollte es keins sein, das stimmt.

    Es ist oft so, dass die Webanwendung mehr als nur einmal offen ist, sprich drei- oder auch sechsmal. Jetzt sollen natürlich nicht sechs Popups und 6 Alarmtöne erscheinen.
    Ich würde das theoretisch so lösen, dass jedes Javascript zu Beginn einer jeden Schleife schaut, ob es schon ein "Main Javascript" gibt.

    Verwende einfach den selben Namen. Die Möglichkeit, nach bestimmten Fenstern suchen zu können, die nicht im Kontext des suchenden Scripts geöffnet wurden, wäre ein erhebliches Datenschutzproblem.

    Jetzt bin ich mir aber unsicher darüber, ob so ein JavaScript überhaupt ein anderes in einem 2. oder 3. Programm sehen kann (also den Namen dieser) ohne, dass es ihn kennt. Es müsste sozusagen "überglobal" sein.

    Da Du mit Frames anstatt eigenständiger Browserinstanzen arbeitest, kannst Du vielleicht einen zentralen Frame zum Öffnen oder Wiederverwenden des Popups verwenden.

    Cheatah

    --
    X-Self-Code: sh:( fo:} ch:~ rl:| br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. »» sofern Du den Popup-Blocker, den heutzutage im Prinzip jeder Browser besitzt, deaktivierst, sollte es keins sein, das stimmt.

      Popup Blocker wird nicht genutzt.

      Verwende einfach den selben Namen. Die Möglichkeit, nach bestimmten Fenstern suchen zu können, die nicht im Kontext des suchenden Scripts geöffnet wurden, wäre ein erhebliches Datenschutzproblem.

      Das heißt also, dass das javascript im Browser1 das javacripts des Browser2 nicht sehen kann?

      1. Verwende einfach den selben Namen. Die Möglichkeit, nach bestimmten Fenstern suchen zu können, die nicht im Kontext des suchenden Scripts geöffnet wurden, wäre ein erhebliches Datenschutzproblem.

        Das heißt also, dass das javascript im Browser1 das javacripts des Browser2 nicht sehen kann?

        Warum sprichst du jetzt von Browser? eben waren es noch mehrere Fenster. Aber wenn du Browser meisnt, dann ist die Antwort ja. Wenn du Fenster meinst, dann nein.

        Struppi.

        1. Sorry, es muss auch möglich sein, zwischen zwei Browser Instanzen zu kommunizieren.

          Aber Karl hat genau das geschrieben, was mir auch eben eingefallen ist. DIe Beiden js mit cookies miteinander zu verbinden.
          Stell sich nur eine Frage:
          Können zwei geöffnete Firefoxbrowser (also 2 Programme, keine 2 Tabs) auf ein und das gleiche cookie zugreifen?
          Wenn ka, wäre das Problem schon mal "fast" gelöst.

          1. Yerf!

            Können zwei geöffnete Firefoxbrowser (also 2 Programme, keine 2 Tabs) auf ein und das gleiche cookie zugreifen?

            Wenn es sich um dauerhafte Cookies (mit fester Ablaufzeit) und nicht um "Session"-Cookies die nur bis zum schließen des Browsers gültig sind handelt sollte dies gehen.

            Gruß,

            Harlequin

            --
            <!--[if IE]>This page is best viewed with a webbrowser. Get one today!<![endif]-->
            1. Ok, danke.
              Ich werds versuchen und wenn was dabei raus kommt auch nochmal kurz berichten.

          2. Hi,

            Sorry, es muss auch möglich sein, zwischen zwei Browser Instanzen zu kommunizieren.

            nein, im Gegenteil: Es darf nicht (must not) möglich sein. Zwischen zwei Browser-Fenstern, von denen das eine per JavaScript vom anderen aus geöffnet wurde, ist es möglich; zwei separate Instanzen haben jedoch in je einer Sandbox (idealerweise) zu laufen, die gegenseitig nicht voneinander wissen. Alles andere ist hochgradig gefährlich - so hat der IE beispielsweise in einigen Versionen bei Seitenaufrufen gerne mal die Referrer völlig fremder Fenster mitgesendet, was ein erhebliches Sicherheitsrisiko darstellt.

            Können zwei geöffnete Firefoxbrowser (also 2 Programme, keine 2 Tabs) auf ein und das gleiche cookie zugreifen?

            Prüfe das bitte selbst in den von Dir benötigten Browsern. Ich kann mir beispielsweise beim IE 8 hervorragend vorstellen, dass er dies (zumindest unter bestimmten Bedingungen) effektiv verhindert. Für Firefox habe ich selbst noch keine solchen Bedingungen beobachtet; es kommt allerdings höchst selten vor, dass ich mit einer Abhängigkeit zu etwas Optionalen arbeite.

            Cheatah

            --
            X-Self-Code: sh:( fo:} ch:~ rl:| br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
            X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
            X-Will-Answer-Email: No
            X-Please-Search-Archive-First: Absolutely Yes
      2. Hallo Dr.Pest

        Popup Blocker wird nicht genutzt.

        Dann sind Cookies vielleicht auch erlaubt?

        Das heißt also, dass das javascript im Browser1 das javacripts des Browser2 nicht sehen kann?

        Und hier kommen die Cookies ins Spiel. Sofern deine ganzen Fenster von der selben Domäne kommen könntest du die erforderlichen Infos in Cookies speichern.
        Sprich immer wenn ein Alarm kommt schreibst du auch ein Cookie dass und wann der Alarm war. Vor einem Alarm liest du die Cookies wieder aus und entscheidest dann ob ein neuer Alarm ausgelöst werden soll oder nicht.

        L.G. Karl