Skip to content
Permalink
Browse files

[giow] (1) Make postMessage() accept the second and third arguments i…

…n either order. Compat with WebKit and hopefully solves the difficulty people have about remembering which goes first.

Fixing http://www.w3.org/Bugs/Public/show_bug.cgi?id=13967

git-svn-id: http://svn.whatwg.org/webapps@6690 340c8d12-0b0e-0410-8428-c7bf67bfef74
  • Loading branch information...
Hixie committed Oct 17, 2011
1 parent 022fe42 commit 1e588eaceefa24bd52e2f0f40c44da5e367c3dd3
Showing with 98 additions and 17 deletions.
  1. +33 −5 complete.html
  2. +33 −5 index
  3. +32 −7 source

<header class=head id=head><p><a class=logo href=http://www.whatwg.org/><img alt=WHATWG height=101 src=/images/logo width=101></a></p>
<hgroup><h1 class=allcaps>HTML</h1>
<h2 class="no-num no-toc">Living Standard &mdash; Last Updated 15 October 2011</h2>
<h2 class="no-num no-toc">Living Standard &mdash; Last Updated 17 October 2011</h2>
</hgroup><dl><dt><strong>Web developer edition:</strong></dt>
<dd><strong><a href=http://developers.whatwg.org/>http://developers.whatwg.org/</a></strong></dd>
<dt>Multiple-page version:</dt>

<!--POSTMSG--> // <a href=#web-messaging>cross-document messaging</a>
void <a href=#dom-window-postmessage title=dom-window-postMessage>postMessage</a>(any message, DOMString targetOrigin, optional sequence&lt;<a href=#transferable>Transferable</a>&gt; transfer);
void <a href=#dom-window-postmessage title=dom-window-postMessage>postMessage</a>(any message, sequence&lt;<a href=#transferable>Transferable</a>&gt; transfer, DOMString targetOrigin);
<!--POSTMSG-->
// <a href=#event-handler-idl-attributes>event handler IDL attributes</a>
[TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onabort title=handler-onabort>onabort</a>;
<h4 id=posting-messages><span class=secno>11.4.3 </span>Posting messages</h4>

<dl class=domintro><dt><var title="">window</var> . <code title=dom-window-postMessage><a href=#dom-window-postmessage>postMessage</a></code>(<var title="">message</var>, <var title="">targetOrigin</var> [, <var title="">transfer</var> ])</dt>
<dt><var title="">window</var> . <code title=dom-window-postMessage><a href=#dom-window-postmessage>postMessage</a></code>(<var title="">message</var> [, <var title="">transfer</var> ], <var title="">targetOrigin</var>)</dt>

<dd>

<p>Throws a <code><a href=#datacloneerror>DataCloneError</a></code> if <var title="">transfer</var> array contains duplicate objects or if
<var title="">message</var> could not be cloned.</p>

<p>The second and third arguments can be given in either order,
and the <var title="">transfer</var> array can be omitted
entirely.</p>

</dd>

</dl><p class=note>When posting a message to a <code><a href=#window>Window</a></code> of a

<div class=impl>

<p>When a script invokes the <dfn id=dom-window-postmessage title=dom-window-postMessage><code>postMessage(<var title="">message</var>, <var title="">targetOrigin</var>, <var title="">transfer</var>)</code></dfn> method (with two or three
arguments) on a <code><a href=#window>Window</a></code> object, the user agent must
follow these steps:</p>
<p>When a script invokes the <dfn id=dom-window-postmessage title=dom-window-postMessage><code>postMessage()</code></dfn>
method (with two or three arguments) on a <code><a href=#window>Window</a></code>
object, the user agent must follow these steps:</p>

<ol><!-- a lot of this is similar or identical to port.postMessage --><li>

<p>Let <var title="">message</var> be the first argument.</p>

</li>

<li>

<p>Let <var title="">targetOrigin</var> be the second argument if
the second argument is a string, or else the third argument.</p>

</li>

<li>

<p>Let <var title="">transfer</var> be the second argument if the
second argument is an array of <code><a href=#transferable>Transferable</a></code> objects,
or else the third argument.</p>

</li>

<li>

<p>If the value of the <var title="">targetOrigin</var> argument
is neither a single U+002A ASTERISK character (*), a single U+002F
SOLIDUS character (/), nor an <a href=#absolute-url>absolute URL</a>, then

<li>

<p>If the method was invoked with a third argument <var title="">transfer</var>, run these substeps:</p>
<p>If the method was invoked with three arguments, run these
substeps:</p>

<ol><li>

38 index

<header class=head id=head><p><a class=logo href=http://www.whatwg.org/><img alt=WHATWG height=101 src=/images/logo width=101></a></p>
<hgroup><h1 class=allcaps>HTML</h1>
<h2 class="no-num no-toc">Living Standard &mdash; Last Updated 15 October 2011</h2>
<h2 class="no-num no-toc">Living Standard &mdash; Last Updated 17 October 2011</h2>
</hgroup><dl><dt><strong>Web developer edition:</strong></dt>
<dd><strong><a href=http://developers.whatwg.org/>http://developers.whatwg.org/</a></strong></dd>
<dt>Multiple-page version:</dt>

<!--POSTMSG--> // <a href=#web-messaging>cross-document messaging</a>
void <a href=#dom-window-postmessage title=dom-window-postMessage>postMessage</a>(any message, DOMString targetOrigin, optional sequence&lt;<a href=#transferable>Transferable</a>&gt; transfer);
void <a href=#dom-window-postmessage title=dom-window-postMessage>postMessage</a>(any message, sequence&lt;<a href=#transferable>Transferable</a>&gt; transfer, DOMString targetOrigin);
<!--POSTMSG-->
// <a href=#event-handler-idl-attributes>event handler IDL attributes</a>
[TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onabort title=handler-onabort>onabort</a>;
<h4 id=posting-messages><span class=secno>11.4.3 </span>Posting messages</h4>

<dl class=domintro><dt><var title="">window</var> . <code title=dom-window-postMessage><a href=#dom-window-postmessage>postMessage</a></code>(<var title="">message</var>, <var title="">targetOrigin</var> [, <var title="">transfer</var> ])</dt>
<dt><var title="">window</var> . <code title=dom-window-postMessage><a href=#dom-window-postmessage>postMessage</a></code>(<var title="">message</var> [, <var title="">transfer</var> ], <var title="">targetOrigin</var>)</dt>

<dd>

<p>Throws a <code><a href=#datacloneerror>DataCloneError</a></code> if <var title="">transfer</var> array contains duplicate objects or if
<var title="">message</var> could not be cloned.</p>

<p>The second and third arguments can be given in either order,
and the <var title="">transfer</var> array can be omitted
entirely.</p>

</dd>

</dl><p class=note>When posting a message to a <code><a href=#window>Window</a></code> of a

<div class=impl>

<p>When a script invokes the <dfn id=dom-window-postmessage title=dom-window-postMessage><code>postMessage(<var title="">message</var>, <var title="">targetOrigin</var>, <var title="">transfer</var>)</code></dfn> method (with two or three
arguments) on a <code><a href=#window>Window</a></code> object, the user agent must
follow these steps:</p>
<p>When a script invokes the <dfn id=dom-window-postmessage title=dom-window-postMessage><code>postMessage()</code></dfn>
method (with two or three arguments) on a <code><a href=#window>Window</a></code>
object, the user agent must follow these steps:</p>

<ol><!-- a lot of this is similar or identical to port.postMessage --><li>

<p>Let <var title="">message</var> be the first argument.</p>

</li>

<li>

<p>Let <var title="">targetOrigin</var> be the second argument if
the second argument is a string, or else the third argument.</p>

</li>

<li>

<p>Let <var title="">transfer</var> be the second argument if the
second argument is an array of <code><a href=#transferable>Transferable</a></code> objects,
or else the third argument.</p>

</li>

<li>

<p>If the value of the <var title="">targetOrigin</var> argument
is neither a single U+002A ASTERISK character (*), a single U+002F
SOLIDUS character (/), nor an <a href=#absolute-url>absolute URL</a>, then

<li>

<p>If the method was invoked with a third argument <var title="">transfer</var>, run these substeps:</p>
<p>If the method was invoked with three arguments, run these
substeps:</p>

<ol><li>

39 source

<!--END w3c-html--><!--POSTMSG--> // <span>cross-document messaging</span>
void <span title="dom-window-postMessage">postMessage</span>(any message, DOMString targetOrigin, optional sequence&lt;<span>Transferable</span>&gt; transfer);
void <span title="dom-window-postMessage">postMessage</span>(any message, sequence&lt;<span>Transferable</span>&gt; transfer, DOMString targetOrigin);
<!--START w3c-html--><!--POSTMSG-->
// <span>event handler IDL attributes</span>
[TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-onabort">onabort</span>;
<dl class="domintro">

<dt><var title="">window</var> . <code title="dom-window-postMessage">postMessage</code>(<var title="">message</var>, <var title="">targetOrigin</var> [, <var title="">transfer</var> ])</dt>
<dt><var title="">window</var> . <code title="dom-window-postMessage">postMessage</code>(<var title="">message</var> [, <var title="">transfer</var> ], <var title="">targetOrigin</var>)</dt>

<dd>

title="">transfer</var> array contains duplicate objects or if
<var title="">message</var> could not be cloned.</p>

<p>The second and third arguments can be given in either order,
and the <var title="">transfer</var> array can be omitted
entirely.</p>

</dd>

</dl>
<div class="impl">

<p>When a script invokes the <dfn
title="dom-window-postMessage"><code>postMessage(<var
title="">message</var>, <var title="">targetOrigin</var>, <var
title="">transfer</var>)</code></dfn> method (with two or three
arguments) on a <code>Window</code> object, the user agent must
follow these steps:</p>
title="dom-window-postMessage"><code>postMessage()</code></dfn>
method (with two or three arguments) on a <code>Window</code>
object, the user agent must follow these steps:</p>

<ol> <!-- a lot of this is similar or identical to port.postMessage -->

<li>

<p>Let <var title="">message</var> be the first argument.</p>

</li>

<li>

<p>Let <var title="">targetOrigin</var> be the second argument if
the second argument is a string, or else the third argument.</p>

</li>

<li>

<p>Let <var title="">transfer</var> be the second argument if the
second argument is an array of <code>Transferable</code> objects,
or else the third argument.</p>

</li>

<li>

<p>If the value of the <var title="">targetOrigin</var> argument

<li>

<p>If the method was invoked with a third argument <var
title="">transfer</var>, run these substeps:</p>
<p>If the method was invoked with three arguments, run these
substeps:</p>

<ol>

0 comments on commit 1e588ea

Please sign in to comment.
You can’t perform that action at this time.