Tôi đang cố gắng làm cho một postMessage
ví dụ tầm thường hoạt động ...
- trong IE10
- giữa các cửa sổ / tab (so với iframe)
- qua các nguồn gốc
Loại bỏ bất kỳ một trong những điều kiện này và mọi thứ hoạt động tốt :-)
Nhưng theo như tôi có thể nói, giữa cửa sổ postMessage
dường như chỉ hoạt động trong IE10 khi cả hai cửa sổ chia sẻ một nguồn gốc. (Chà, trên thực tế - và kỳ lạ thay - hành vi này hơi dễ dãi hơn thế: hai nguồn gốc khác nhau có chung một vật chủ dường như cũng hoạt động).
Đây có phải là một lỗi đã được ghi nhận không? Bất kỳ giải pháp thay thế hoặc lời khuyên khác?
(Lưu ý: Câu hỏi này liên quan đến các vấn đề, nhưng câu trả lời của nó là về IE8 và IE9 - không phải 10)
Thêm chi tiết + ví dụ ...
demo trang launcher
<!DOCTYPE html>
<html>
<script>
window.addEventListener("message", function(e){
console.log("Received message: ", e);
}, false);
</script>
<button onclick="window.open('http://jsbin.com/ameguj/1');">
Open new window
</button>
</html>
giới thiệu trang giới thiệu
<!DOCTYPE html>
<html>
<script>
window.opener.postMessage("Ahoy!", "*");
</script>
</html>
Điều này hoạt động tại: http://jsbin.com/ahuzir/1 - vì cả hai trang đều được lưu trữ tại cùng một nguồn gốc (jsbin.com). Nhưng di chuyển trang thứ hai đến bất kỳ nơi nào khác và nó không thành công trong IE10.