簡體   English   中英

IE11是否支持window.postMessage()

[英]Does IE11 support window.postMessage()

我正在使用window.postMessage進行跨域彈出通信。 firefox和chrome上的一切似乎都運行良好。 主要問題是IE11。 我在多個系統IE11上進行了測試,對於很少的系統來說它的工作正常,但對於其他系統,它似乎不會在父頁面上監聽消息。

由於我們所有人(經過測試)都在同一個網絡下,因此我們擁有相同版本的IE。 確切版本:11.0.9600.18314CO。 自從過去兩天以來非常令人沮喪。

更新:

我看到不同瀏覽器中的文檔模式不同。 在我的瀏覽器上,網站加載了EDGE,一切正常。 在其他一些系統中,它以IE7模式加載並導致問題。

現在我不確定為什么對於同一網站,文檔模式在不同的系統IE上是不同的。

這是一個例子: http//plnkr.co/edit/pK4XBJDrqFrE7awvMlZj?p = preview

 Page 1: <!DOCTYPE html> <html> <head> <script> var popup = window.open("popup.html", "popup", "width=200,height=200"); function receiveMessage(event) { if (event.origin === "http://run.plnkr.co") { console.log(event, event.data); this.location.href = event.data; } } window.addEventListener("message", receiveMessage, false); </script> </head> <body> </body> </html> Page 2: <!DOCTYPE html> <html> <head> </head> <body> <form> <input type="button" value="Save"> </form> <script> console.log(window.opener); var button = document.querySelector("form input[type=button]"); button.onclick = function(e) { e.preventDefault(); e.stopPropagation(); window.opener.postMessage("redirect.html" , window.opener.location.href); window.close(); } </script> </body> </html> Page 3: <!doctype html> <html xmlns='http://www.w3.org/1999/xhtml'> <head> <meta charset='utf-8' /> <style type='text/css'></style> </head> <body> redirected </body> </html> 

任何幫助,將不勝感激..

我有相同的條件 - 跨域彈出窗口對話框和非常相似的代碼,這也沒有在IE11中工作(舊版本與我無關)。 在我的情況下,我發現它不起作用,因為Internet Explorer安全區域

我的開啟頁面是在可信站點之間,對話框頁面不是。 如果兩個站點具有相同的區域(可信任或互聯網),則發現它有效。

從我的測試中可以看出,由於window.opener.location.href ,你的代碼無效。 可能你無法訪問開窗器屬性。 如果我將其更改為特定域,則它開始起作用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM