window.openDialog

  • Adressname der Version: DOM/window.openDialog
  • Titel der Version: window.openDialog
  • ID der Version: 296920
  • Erstellt:
  • Autor: j3s.ch
  • Aktuelle Version? Nein
  • Kommentar

Inhalt der Version

{{ DomRef() }}

Zusammenfassung

window.openDialog ist eine Erweiterung von window.open. Es ist fast das gleiche, ausser das optional nach windowFeatures zusätzliche Parameter angegeben werden können, und windowFeatures selber wird ein bisschen anders behandelt.

Die optionalen Parameter, wenn vorhanden, werden zu einem JavaScript Array gebündelt und zum neu geöffneten Fenster hinzugefügt als eine Eigenschaft namens window.arguments. Sie können jederzeit im JavaScript des Fensters verwendet werden, auch während der ausführung eines load handler. Diese Parameter können dafür benutz werden, um in beide Richtungen Daten mit dem Dialogfenster auszutauschen.

Beachten sie, das nach dem Aufruf von openDialog() sofort weitergefahren wird. Wenn Sie wollen, dass der Aufruf blockiert bis der Benutzer den Dialog schliesst, geben sie modal als windowFeatures Parameter an. Beachten sie, dass der Benutzer das opener window nicht bedienen kann, bis er den Dialog schliesst.

Syntax

newWindow = openDialog(url, name, features, arg1, arg2, ...) 
newWindow 
Das geöffnete Fenster
url 
Die URL, die im neu geöffneten Fenster geladen wird.
name 
Der Name des Fensters (optional). Siehe window.open für detailierte Informationen.
features 
Siehe window.open.
arg1, arg2, ... 
Die Argumente, die dem neuen Fenster gegeben werden (optional).

Beispiel

var win = openDialog("http://example.tld/zzz.xul", "dlg", "", "pizza", 6.98);

Zu beachten

Neue Features

all - Aktiviert (oder deaktiviert ("all=no")) anfangs alles chrome (ausser die behaviour flags chrome, dialog und modal). Diese können überschrieben werden (z.B. "menubar=no,all" schaltet alles chrome ein ausser die Menüleiste.) Dieses Feature wird explizirt ignoriert von window.open. Für window.openDialog ist es nützlich wegen unterschiedlichem Standartverhalten.

Standartverhalten

Die window Features chrome und dialog  sind immer eingeschaltet, ausser sie werden explizit ausgeschaltet ("chrome=no"). openDialog behandelt einen nicht vorhandenen features Parameter gleich wie window.open, (ein leerer String schaltet alle Features aus) ausser chrome und dialog, welche standartmässig eingeschaltet sind. Wenn der features Parameter ein leerer String ist, oder nur behaviour features (chrome, dependent, dialog und modal) enthält, werden die chrome features nach der "OS' choice" ausgewählt. Das heisst, der window creation code erhält keine spezifischen Anweisungen, kann dafür das chrome auswählen, das am besten zu einem Dialog auf diesem operating system passt.

Zusätzliche Parameter zum Dialog hinzufügen

Um dem Fenster zusätzliche Parameter hinzuzufügen, können Sie diese einfach nach dem windowFeatures parameter einfügen:

openDialog("http://example.tld/zzz.xul", "dlg", "", "pizza", 6.98);

Die zusätzlichen Parameter werden dann in eine Eigenschaft gepackt namens arguments mit dem Typ Array, und diese Eigenschaft wird dem neu erzeugten Fenster hinzugefügt.

Benützen Sie dieses Schema, um im Code des Dialogs auf diese zusätzlichen Parameter zuzugreifen:

var food  = window.arguments[0];
var price = window.arguments[1];

Beachten Sie, dass Sie überall im Code des Dialogs auf diese Eigenschaft zugreiffen können. (Anderes Beispiel).

Werte vom Dialog zurückerhalten

Weil window.close() alle Eigenschaften des Dialogfensters löscht (d.h. die Variablen vom JavaScript des Dialogs), ist es nicht möglich, mit globalen Variablen (oder anderen Konstrukten) nach dem Schliessen Werte zurückzugeben.

Um Werte zum Aufrufer zurückzugeben, müssen Sie ein Objekt mit den zusätzlichen Parametern übergeben. Sie können im Code des Dialogs auf dieses Objekt zugreiffen und Eigenschaften setzen, welche die Werte enthalten, die Sie zurückgeben wollen oder die Sie auch nach window.close() behalten wollen.

var retVals = { address: null, delivery: null };
openDialog("http://example.tld/zzz.xul", "dlg", "modal", "pizza", 6.98, retVals);

Wenn Sie im Dialog die Eigenschaften von retVals im Code des Dialogs setzen wie unten beschrieben, können Sie über retVals auf sie zugreiffen nach dem der Aufruf von openDialog() zurückkommt.

Im JavaScript des Dialogs können Sie wie folgt auf die Eigenschaften zugreiffen:

var retVals = window.arguments[2];
retVals.address  = enteredAddress;
retVals.delivery = "immediate";

Siehe auch hier. (anderes Beispiel).
Siehe auch window.importDialog (mobile).

Spezifikation

{{ DOM0() }}

{{ languages( { "en": "en/DOM/window.openDialog", "pl": "pl/DOM/window.openDialog", "fr": "fr/DOM/window.openDialog", "de": "de/DOM/window.openDialog" } ) }}

Quelltext der Version

<p>{{ DomRef() }}</p>
<h3 id="Summary" name="Summary">Zusammenfassung</h3>
<p><code>window.openDialog</code> ist eine Erweiterung von <a href="/de/DOM/window.open" title="de/DOM/window.open">window.open</a>. Es ist fast das gleiche, ausser das optional nach <code>windowFeatures</code> zusätzliche Parameter angegeben werden können, und <code>windowFeatures</code> selber wird ein bisschen anders behandelt.</p>
<p>Die optionalen Parameter, wenn vorhanden, werden zu einem JavaScript Array gebündelt und zum neu geöffneten Fenster hinzugefügt als eine Eigenschaft namens <a href="/de/DOM/window.arguments" title="de/DOM/window.arguments">window.arguments</a>. Sie können jederzeit im JavaScript des Fensters verwendet werden, auch während der ausführung eines <code>load</code> handler. Diese Parameter können dafür benutz werden, um in beide Richtungen Daten mit dem Dialogfenster auszutauschen.</p>
<p>Beachten sie, das nach dem Aufruf von <code>openDialog()</code> sofort weitergefahren wird. Wenn Sie wollen, dass der Aufruf blockiert bis der Benutzer den Dialog schliesst, geben sie <code>modal</code> als <code>windowFeatures</code> Parameter an. Beachten sie, dass der Benutzer das opener window nicht bedienen kann, bis er den Dialog schliesst.</p>
<h3 id="Syntax" name="Syntax">Syntax</h3>
<pre class="eval">
<em>newWindow</em> = openDialog(<em>url</em>, <em>name</em>, <em>features</em>, <em>arg1</em>, <em>arg2</em>, ...) 
</pre>
<dl>
  <dt>
    newWindow&nbsp;</dt>
  <dd>
    Das geöffnete Fenster</dd>
  <dt>
    url&nbsp;</dt>
  <dd>
    Die URL, die im neu geöffneten Fenster geladen wird.</dd>
  <dt>
    name&nbsp;</dt>
  <dd>
    Der Name des Fensters (optional). Siehe <a href="/de/DOM/window.open" title="de/DOM/window.open">window.open</a> für detailierte Informationen.</dd>
  <dt>
    features&nbsp;</dt>
  <dd>
    Siehe <a href="/de/DOM/window.open" title="de/DOM/window.open">window.open</a>.</dd>
  <dt>
    arg1, arg2, ...&nbsp;</dt>
  <dd>
    Die Argumente, die dem neuen Fenster gegeben werden (optional).</dd>
</dl>
<h3 id="Example" name="Example">Beispiel</h3>
<pre class="eval">
var win = openDialog("<span class="nowiki">http://example.tld/zzz.xul</span>", "dlg", "", "pizza", 6.98);
</pre>
<h3 id="Notes" name="Notes">Zu beachten</h3>
<h4 id="New_Features" name="New_Features">Neue Features</h4>
<p><code>all</code> - Aktiviert (oder deaktiviert <code>("all=no")</code>) anfangs alles chrome (ausser die behaviour flags <code>chrome</code>, <code>dialog</code> und <code>modal</code>). Diese können überschrieben werden (z.B. <code>"menubar=no,all"</code> schaltet alles chrome ein ausser die Menüleiste.) Dieses Feature wird explizirt ignoriert von <a href="/de/DOM/window.open" title="de/DOM/window.open">window.open</a>. <code>Für window.openDialog</code> ist es nützlich wegen unterschiedlichem Standartverhalten.</p>
<h4 id="Default_behaviour" name="Default_behaviour">Standartverhalten</h4>
<p>Die window Features <code>chrome</code> und <code>dialog</code>&nbsp; sind immer eingeschaltet, ausser sie werden explizit ausgeschaltet ("<code>chrome=no</code>"). <code>openDialog</code> behandelt einen nicht vorhandenen features Parameter gleich wie <a href="/de/DOM/window.open" title="de/DOM/window.open">window.open</a>, (ein leerer String schaltet alle Features aus) ausser <code>chrome</code> und <code>dialog</code>, welche standartmässig eingeschaltet sind. Wenn der <code>features</code> Parameter ein leerer String ist, oder nur behaviour features (<code>chrome</code>, <code>dependent</code>, <code>dialog</code> und <code>modal</code>) enthält, werden die chrome features nach der "OS' choice" ausgewählt. Das heisst, der window creation code erhält keine spezifischen Anweisungen, kann dafür das chrome auswählen, das am besten zu einem Dialog auf diesem operating system passt.</p>
<h4 id="Passing_extra_parameters_to_the_dialog" name="Passing_extra_parameters_to_the_dialog">Zusätzliche Parameter zum Dialog hinzufügen</h4>
<p>Um dem Fenster zusätzliche Parameter hinzuzufügen, können Sie diese einfach nach dem <code>windowFeatures</code> parameter einfügen:</p>
<pre class="eval">
openDialog("<span class="nowiki">http://example.tld/zzz.xul</span>", "dlg", "", "pizza", 6.98);
</pre>
<p>Die zusätzlichen Parameter werden dann in eine Eigenschaft gepackt namens <code>arguments</code> mit dem Typ <a href="/de/Core_JavaScript_1.5_Reference/Global_Objects/Array" title="de/Core_JavaScript_1.5_Reference/Global_Objects/Array">Array</a>, und diese Eigenschaft wird dem neu erzeugten Fenster hinzugefügt.</p>
<p>Benützen Sie dieses Schema, um im Code des Dialogs auf diese zusätzlichen Parameter zuzugreifen:</p>
<pre class="eval">
var food  = window.arguments[0];
var price = window.arguments[1];
</pre>
<p>Beachten Sie, dass Sie überall im Code des Dialogs auf diese Eigenschaft zugreiffen können. (<a href="/de/Code_snippets/Dialogs_and_Prompts#Passing_arguments_and_displaying_a_dialog" title="de/Code_snippets/Dialogs_and_Prompts#Passing_arguments_and_displaying_a_dialog">Anderes Beispiel</a>).</p>
<h4 id="Returning_values_from_the_dialog" name="Returning_values_from_the_dialog">Werte vom Dialog zurückerhalten</h4>
<p>Weil <code>window.close()</code> alle Eigenschaften des Dialogfensters löscht (d.h. die Variablen vom JavaScript des Dialogs), ist es nicht möglich, mit globalen Variablen (oder anderen Konstrukten) nach dem Schliessen Werte zurückzugeben.</p>
<p>Um Werte zum Aufrufer zurückzugeben, müssen Sie ein Objekt mit den zusätzlichen Parametern übergeben. Sie können im Code des Dialogs auf dieses Objekt zugreiffen und Eigenschaften setzen, welche die Werte enthalten, die Sie zurückgeben wollen oder die Sie auch nach <code>window.close() </code>behalten wollen.</p>
<pre class="eval">
var retVals = { address: null, delivery: null };
openDialog("<span class="nowiki">http://example.tld/zzz.xul</span>", "dlg", "modal", "pizza", 6.98, retVals);
</pre>
<p>Wenn Sie im Dialog die Eigenschaften von <code>retVals</code> im Code des Dialogs setzen wie unten beschrieben, können Sie über <code>retVals</code> auf sie zugreiffen nach dem der Aufruf von <code>openDialog()</code> zurückkommt.</p>
<p>Im JavaScript des Dialogs können Sie wie folgt auf die Eigenschaften zugreiffen:</p>
<pre class="eval">
var retVals = window.arguments[2];
retVals.address  = enteredAddress;
retVals.delivery = "immediate";
</pre>
<p>Siehe auch hier. (<a href="/de/Code_snippets/Dialogs_and_Prompts#Passing_arguments_and_displaying_a_dialog" title="de/Code_snippets/Dialogs_and_Prompts#Passing_arguments_and_displaying_a_dialog">anderes Beispiel</a>).<br />
  Siehe auch window.importDialog (mobile).</p>
<h3 id="Specification" name="Specification">Spezifikation</h3>
<p>{{ DOM0() }}</p>
<p>{{ languages( {&nbsp;"en": "en/DOM/window.openDialog",&nbsp;"pl": "pl/DOM/window.openDialog", "fr": "fr/DOM/window.openDialog", "de": "de/DOM/window.openDialog" } ) }}</p>
Zu dieser Version zurücksetzen