2012-06-08 2 views
0

HTML postMessage 기능을 사용하려고합니까?HTML 5 postMessage (동일한 도메인)

예를 들어 사이트를 찾았지만 어떤 이유로 고생하고 있습니다.

2 페이지의 코드는 아래에 표시되며 도움이 될 것입니다.

감사와 안부, 라이언

test.php 사전에

<div id="test">Send me a message!</div> 
<script> 
document.addEventListener("message", function(e){ 
     document.getElementById("test").textContent = 
       e.domain + " said: " + e.data; 
}, false); 
</script> 

다시 한번 감사

<iframe src="postmessage-target.html" id="iframe"></iframe> 
<form id="form"> 
    <input type="text" id="msg" value="Message to send"/> 
    <input type="submit"/> 
</form> 
<script> 
window.onload = function(){ 
     var win = document.getElementById("iframe").contentWindow; 
     document.getElementById("form").onsubmit = function(e){ 
       win.postMessage(document.getElementById("msg").value); 
       e.preventDefault(); 
     }; 
}; 
</script> 

PostMessage를-target.html 자세한.

라이언

UPDATE

사용자의 조언에 따라이 맞습니까?

test.html를

<iframe src="postmessage-target.html" id="iframe"></iframe> 
<form id="form"> 
    <input type="text" id="msg" value="Message to send"/> 
    <input type="submit"/> 
</form> 
<script> 
window.onload = function(){ 
     var win = document.getElementById("iframe").contentWindow; 
     document.getElementById("form").onsubmit = function(e){ 
       win.postMessage(document.getElementById("msg").value, "*"); 
       e.preventDefault(); 
     }; 
}; 
</script> 

PostMessage를-target.html 자세한 규범 당신이 PostMessage를 함수에 targetOrigin 제공해야 함을 지정

<div id="test">Send me a message!</div> 
<script> 
document.addEventListener("message", function(e){ 
document.getElementById("test").innerHTML = e.origin + " said: " + e.data; 
}, false); 
</script> 

답변

2

:

win.postMessage(document.getElementById("msg").value, "*"); 

나는 e.domain이 있다고 생각하지 않습니다. 청취자에 e.origin을 시도해보십시오

document.getElementById("test").innerHTML = e.origin + " said: " + e.data; 

+0

안녕하세요 @dystroy, 업데이트를 참조하십시오, 올바르게 했습니까? 고마워, – Smudger

+0

나는 여전히 같은 오류가 나타납니다. 업데이트 하시겠습니까? 가장 좋은 것은 시도하는 것입니다. –

0

는이 작업을 얻으려면 (나는 또한 innerHTML을하여 비 표준는 TextContent 교체), 내가 생각 window.addEventListener-하는 document.addEventListener을 변경할 필요 끝났다 그런 식으로 iframe 대신 전송하는 문서에 수신 코드를 추가하는 것입니다.