Gibt es eine Möglichkeit, die Browsergröße und -position über mehrere Monitore / Monitore hinweg zu steuern?

8

Vorwort

Zunächst bin ich mir sehr wohl bewusst, dass Webapps nicht mit der Fenstergröße oder -position herumspielen sollten. Durch viele ähnliche SO Fragen und Forenbeiträge.

Aber dies ist ein Sonderfall, bei dem der Browser nur eine Plattform ist, um eine App auf mehreren bestimmten Maschinen in einer kontrollierten Umgebung auszuführen.

Aufgabe

Die App sollte Fenster über mehrere Displays verwalten. (bis zu 5)

Was ich bis jetzt versucht habe

  1. Es wurde nach Methoden gesucht, um Informationen über die Anzeige von Host-Systeminformationen zu erhalten, aber das window.screen -Objekt meldet nur Eigenschaften der Anzeige, auf der sich das Fenster gerade befindet (oder als eingeschaltet gilt, wenn es halbwegs eins ist)
  2. Versucht window.moveTo und window.open mit Flags "left=123,top=123" , aber sie sind immer auf die aktuelle Anzeige beschränkt
  3. Versucht window.resize und window.open mit Flags "height=123,width=123" , aber genauso wie mit moveTo sind sie auf die aktuelle Anzeige beschränkt.

Frage

Was kann ich tun, damit meine Anwendung den gesamten verfügbaren Platz in einer Multi-Display-Umgebung nutzt (ohne manuelle Fensterpositionierung)?

Szenario

Denken Sie darüber nach, wie ich zwei Projektoren richtig ausgerichtet habe, und möchte dies ermöglichen:

  • Jedes Projekt projiziert verschiedene Dinge (jeder Projektor projiziert sein eigenes Browserfenster)
  • Projizieren Sie eine App nahtlos über beide Projektoren (möglicherweise im Vollbildmodus)

Es könnte / sollte ein Fenster sein, in dem die Layoutlogik des Hauptfensters ausgeführt wird

Hinweis

Ich kann einen beliebigen flags , app oder kiosk Modus verwenden, wie noch einmal: wir stellen die App in der Zielumgebung bereit.

Die Browseroptionen sind Chrome (bevorzugt), Chromium und Firefox auf einer Windows-Plattform (wegen der speziellen Grafikkarte, die wir für 5 Displays verwenden).

Ausweichlösung

Sie können ein Fenster manuell über verfügbare Anzeigen strecken und die Anwendungen in iframe s innerhalb dieses Masters window ausführen.

Nachteil : Ein einzelner Prozess führt alles aus. Sollte also eine App innerhalb eines Rahmens brechen, bricht alles ab.

Nachwort

Auch eine Lösung für diese Frage wäre eine große Hilfe: Windows / Chrome / ATI / Browser Vollbild über mehrere Monitore

    
Matyas 05.02.2014, 14:08
quelle

5 Antworten

3

Gehen Sie mit einer Chrome / Firefox-Erweiterung, die Zugriff auf Fenster / Tabs spezifische APIs hat. Entweder bette deine gesamte Anwendung in die Erweiterung ein oder kommuniziere mit der Erweiterung über Nachrichten (chrome, es gibt eine Entsprechung auf Firefox).

Support in Chrome ist experimentell .

    
Sergiu Paraschiv 05.02.2014, 14:21
quelle
1

Sie können window.moveTo (-1000,100) verwenden, um einen Popup auf einen zweiten Monitor in IE zu verschieben, wenn Sie unter Internetoptionen / Sicherheit / benutzerdefiniert die Berechtigung "Skriptinitiierte Fenster ohne Größen- oder Positionsbeschränkungen zulassen" aktivieren Ebene.

Wenn nur ein Monitor angeschlossen ist, wird das Fenster an den Rand der primären Anzeige verschoben. Ich habe jedoch keine Möglichkeit gefunden, dies in Chrome zu tun, es scheint nicht die gleiche Sicherheitsoption zu haben.

    
Tim S 04.08.2014 22:22
quelle
0

Eine andere mögliche Lösung ist, den win32 zu verwenden, um & amp; Positioniere das Fenster.

Wie in der Lösung der Frage gesehen: Chrome Packaged App und Dual Monitore (kein Code dort, dies ist nur als Referenz)

    
Matyas 05.02.2014 14:35
quelle
0

Ich glaube nicht, dass es möglich ist. Der Browser beschränkt JavaScript aus Sicherheitsgründen auf seine Berechtigungen. Vielleicht können Sie manuell (in JavaScript natürlich) die X- und Y-Position weit außerhalb des Bildschirms festlegen, so dass es auf einem anderen Bildschirm angezeigt wird, aber das ist kein guter Weg, dies zu tun.

Soweit ich denken kann, haben Sie zwei Möglichkeiten:

  1. Erstellen Sie für jeden Bildschirm verschiedene Seiten und öffnen Sie sie jedes Mal separat.
  2. Erstellen Sie alle Fenster mit einer Schaltfläche, und ziehen Sie sie auf den entsprechenden Bildschirm. Wenn der Benutzer auf die Schaltfläche klickt, öffnen Sie das Fenster im Vollbild- / Kiosk-Modus und laden Sie den Inhalt. Ich weiß jedoch nicht, was passieren wird, wenn Sie irgendwo im Vollbildmodus einen anderen Bildschirm aktivieren. Es könnte den Vollbildmodus ungültig machen und schließen.

Dies ist der einzige Weg, wie Sie in Ihrem Browser verschiedene Fenster haben können, soweit ich weiß.

    
Marvin Brouwer 05.02.2014 14:20
quelle
-1

Verwenden Sie die chrome.windows-API, um mit Browserfenstern zu interagieren. Sie können diese API zum Erstellen, Ändern und Neuanordnen von Fenstern im Browser verwenden.

Ссылка

Es funktioniert sogar mit der Nachtwache.

    
QualiT 05.02.2016 22:25
quelle