Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Bowser Fenster

Empfohlene Antworten

Veröffentlicht

Hallo zusammen,

ich hab mal wieder eine doofe Frage:

Wie kann ich mit Perl herausfinden ob ein Browser Fenster geöffnet ist?

Ich hoffe ich habe es einigermaßen verständlich erklärt.

Wäre toll wenn mir jemand helfen könnte.

Gruß

Michl

Es läuft auf einem Webserver

Na dann fühl Dich mal frei, mehr Angaben zu posten...

Was für ein Script/eine Anwendung?

Wann soll geprüft werden, ob ein Browserfenster geöffnet ist?

Wie wird das Perl-Script aufgerufen, das dann prüfen soll, ob das Fenster geöffnet ist?

Wie kann ich mit Perl herausfinden ob ein Browser Fenster geöffnet ist?
Ich weiss nicht genau ob ich dich richtig verstanden habe (vielleicht erklärst du mal, was du genau überprüfen willst) aber pauschal sage ich einfach mal nein.

Perl wird serverseitig abgearbeitet und bekommt überhaupt nicht mit, dass es einen Browser gibt - der einzige Weg für den Webserver mit der "Aussenwelt" zu kommunizieren ist über HTTP und dem Protokoll ist es vollkommen egal, ob die Response nun über einen Browser gerendert, oder sonstwie intern verarbeitet wird.

Ich muss meine Frage vielleicht anders formulieren:

Mit welchem Befehl kann ich unter Perl ein Browserfenster öffnen?

Ich muss meine Frage vielleicht anders formulieren:
Nein, du musst deutlich sagen, was du genau machen willst.

Soll das Fenster auf dem Rechner geöffnet werden, auf dem auch der Perl Interpreter selber aufgerufen wird (möglich, durch Aufruf eines Systembefehls) oder auf dem Rechner, der die HTML Seite bekommt, die vom Perl-Skript generiert worden ist (in diesem Fall: nicht möglich)?

Soll das Fenster auf dem Rechner geöffnet werden, auf dem auch der Perl Interpreter selber aufgerufen wird (möglich, durch Aufruf eines Systembefehls)

Besser hätte ich es nicht formulieren können :)

Besser hätte ich es nicht formulieren können :)

steht ja hinten drann, obs möglich ist oder nicht...

Ja, und wie lautet der Systembefehl???

Ja, und wie lautet der Systembefehl???
Wie wäre es, wenn du auch ein wenig Arbeit selbst machen würdest?!

Unter Windows lautet der Befehl um den IE zu öffnen z.B.:

cmd /c "C:\Programme\Internet Explorer\IEXPLORE.EXE"

bzw. dasselbe für den Firefox:

cmd /c "C:\Programme\Mozilla Firefox\firefox.exe"

Für Linux z.B.

/usr/local/firefox/firefox

Installationsverzeichnisse evtl. anpassen :)

Für Linux z.B.

/usr/local/firefox/firefox

Unter Linux und aehnlichen Systemen wuerde ich die Sache (je nach Anforderung) anders angehen.

Je nachdem wie das Programm laeuft, wirst du deinen Browser unterschiedlich oeffnen wollen.

Wenn Perl einfach nur den Browser starten soll, dann langt ein simples:

#!/usr/local/bin/perl -w

system("/pfad/zu/deinem/browser")

Code, der nach system() folgt, wird erst ausgefuehrt, wenn der Browser wieder "geschlossen" wurde.

Falls also der Browser gestartet werden soll und sofort weiter Code ausgefuehrt werden soll, muss die sache etwas anders aussehen:

#!/usr/local/bin/perl -w

use POSIX qw(setsid);

setsid(); fork();

exec("/pfad/zu/deinem/browser"); # achtung: exec returned nicht.

# code... 

Falls dem Browser jetzt noch dynamisch generierte Option uebergeben werden, solltest du, um auf Nummer sicher zu gehen, noch die Verwendung von qx// oder qr// in Betracht ziehen.

mfg

iscariot

Ich hab des jetzt soweit umgesetzt und klappt auch ganz gut. Danke dafür!!!

Aber jetzt hat sich ein neues Problem ergeben. Und zwar folgendes:

Ich starte das Script, es öffnet das Browserfenster und die Seite steht. Wenn ich aber das Script erneut ausführe, öffnet er kein neues Fenster sondern benutzt das gleiche wieder. Das möchte ich nicht. Ich möchte dass er ein neues Fenster öffnet/benutzt!

Weiß vielleicht jemand wie ich dieses Problem auch noch in den Griff bekomme?

Folgendermaßen ruf ich den Browser auf:

system("/pfad/zu/deinem/browser" "URL")

Netscape und IE

versuch es mal mit iexplore -new (ungetestet).

Das hat leider nicht gefunzt.

Hast du vielleicht noch eine andere Idee?

Hi nochmal,

meine Frage hat sich erledigt! Ich habs!

Es geht mit folgendem Befehl:

exec("\"Pfad\zum\Browser\" URL");

Danke für euere hilfe!!!

Gruß

Michl

Hi, ich nochmal. Ich weiß ich nerve, aber:

Es hat sich ein neues Problem aufgetan. Zum meinem Code ist noch neuer hinzu gekommen. exec() bringt nun das Problem mit sich, dass Code nach eben diesem Befehl nicht weiter ausgeführt wird. Die vermeintliche Problemlösung wurde zwar oben schon mal gepostet, aber es funktioniert bei mir nicht :(

Wenn ich das ganze mit system() mache, läuft das Perl-Script erst weiter, wenn ich den Browser wieder schließe. So soll es auch nicht sein.

Hat da von euch noch jemand vielleicht eine Idee?

Wäre nett, wenn mir jemand helfen könnte!

Gruß

Michl

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.