100 isIE11 = !!navigator.userAgent.match( /Trident.*rv:11\./ ), |
105 isIE11 = !!navigator.userAgent.match( /Trident.*rv:11\./ ), |
101 iframes = document.querySelectorAll( 'iframe.wp-embedded-content' ), |
106 iframes = document.querySelectorAll( 'iframe.wp-embedded-content' ), |
102 iframeClone, i, source, secret; |
107 iframeClone, i, source, secret; |
103 |
108 |
104 for ( i = 0; i < iframes.length; i++ ) { |
109 for ( i = 0; i < iframes.length; i++ ) { |
|
110 /** @var {IframeElement} */ |
105 source = iframes[ i ]; |
111 source = iframes[ i ]; |
106 |
112 |
107 if ( ! source.getAttribute( 'data-secret' ) ) { |
113 secret = source.getAttribute( 'data-secret' ); |
|
114 if ( ! secret ) { |
108 /* Add secret to iframe */ |
115 /* Add secret to iframe */ |
109 secret = Math.random().toString( 36 ).substr( 2, 10 ); |
116 secret = Math.random().toString( 36 ).substr( 2, 10 ); |
110 source.src += '#?secret=' + secret; |
117 source.src += '#?secret=' + secret; |
111 source.setAttribute( 'data-secret', secret ); |
118 source.setAttribute( 'data-secret', secret ); |
112 } |
119 } |
115 if ( ( isIE10 || isIE11 ) ) { |
122 if ( ( isIE10 || isIE11 ) ) { |
116 iframeClone = source.cloneNode( true ); |
123 iframeClone = source.cloneNode( true ); |
117 iframeClone.removeAttribute( 'security' ); |
124 iframeClone.removeAttribute( 'security' ); |
118 source.parentNode.replaceChild( iframeClone, source ); |
125 source.parentNode.replaceChild( iframeClone, source ); |
119 } |
126 } |
|
127 |
|
128 /* |
|
129 * Let post embed window know that the parent is ready for receiving the height message, in case the iframe |
|
130 * loaded before wp-embed.js was loaded. When the ready message is received by the post embed window, the |
|
131 * window will then (re-)send the height message right away. |
|
132 */ |
|
133 source.contentWindow.postMessage( { |
|
134 message: 'ready', |
|
135 secret: secret |
|
136 }, '*' ); |
120 } |
137 } |
121 } |
138 } |
122 |
139 |
123 if ( supportedBrowser ) { |
140 if ( supportedBrowser ) { |
124 window.addEventListener( 'message', window.wp.receiveEmbedMessage, false ); |
141 window.addEventListener( 'message', window.wp.receiveEmbedMessage, false ); |