Gibt es in einem Modal-Dialog, der von einem Google Sheet-Skript aus gestartet wird, eine Möglichkeit, die Größe des Browserfensters oder der Hostanzeige zu bestimmen? Ich möchte in der Lage sein, die Breite eines Dialogs auf einen Prozentsatz der Benutzeranzeige einzustellen, also eine Vielzahl von Maschinen zu unterstützen.
Normale jQuery-Techniken wie $( window ).width()
und $( document ).width()
geben die Breite des -Dialogs zurück, was nicht das ist, was ich möchte (und einzigartig für diese Umgebung ist).
Wenn Sie versuchen, auf einen der div-Container außerhalb des Dialogs zu verweisen, erhalten Sie null
(Ich habe "#docs-editor-container"
, "modal-dialog-bg"
und einige andere versucht.)
Hier ist ein einfaches Skript, um diesen Dialog mit den bisherigen Ergebnissen neu zu erstellen.
Sie können versuchen, die Größe der Bildschirmentwicklung ein DIV mit CSS-Stil auf Breite = 100% und Höhe = 0% zu erhalten. Verwenden Sie dann die Datei document.getElementById ("container"). OffsetHeight
Das Problem besteht darin, dass Sie es nur im SandBox EMULATE-Modus (HtmlService.SandboxMode.EMULATED) verwenden können.
Hier ein Beispiel ( Ссылка ):
code.gs
%Vor%index.html
%Vor%In diesem Beispiel können Sie die Kommentare löschen (/ * * /) und versuchen, auch die Höhe zu erhalten.
Die spanische und die vollständige Version finden Sie Ссылка
Wenn der Ursprung des Add-On-Iframes der gleiche wäre, könnten wir aus zwei Iframes mit folgenden Elementen springen:
%Vor%um darauf zuzugreifen, wie in diesem Post erwähnt.
Da dies nicht der Fall ist, wird wahrscheinlich eine Verbesserungsanforderung benötigt, damit Docs die maximale Größe an Add-on-Iframes über Postmessage oder ein anderer Mechanismus, der von einem anderen Ursprung ausgeht. Das Hinzufügen von maxHeight
und width zu der vorhandenen Browser
-Klasse mag einfacher sein, aber denken Sie, dass nur browserartige Widgets hinzugefügt wurden.
Wenn Sie eine größere als die benötigte Breite festlegen, wird die maximale Breite des Fensters "Docs" erreicht. Die Schaltfläche "Schließen" wird jedoch nicht angezeigt, wenn der Benutzer sie zum Drücken von esc zwingt. Wenn Sie wie eine 90% maximale Höhe / Breite Ansicht von Docs wollen, scheint derzeit nicht möglich.
Tags und Links jquery google-spreadsheet google-docs google-apps-script