HTML 5 windowsとiframeの間でメッセージを渡す
2044 ワード
まずホームページのHTMLコード
そしてiframeのHTMLコード
そしてホームページのJSコード
キーコードは次のとおりです.
win.postMessage(document.getElementById("message").value,"*");
postMessageは通信オブジェクトの1つの方法であるため、iframeに通信することは、iframeオブジェクトにpostMessageメソッドを呼び出すことである.postMessageには2つのパラメータがありますが、1つが欠けてはいけません.1番目のパラメータは伝達されるデータであり、2番目のパラメータは通信を許可するドメインであり、「*」はアクセスしないドメインを表し、すべてのドメインの通信を許可すると理解される.
そしてiframeのJSコード
<section id="wrapper">
<header><h1>postMessage ( )</h1></header>
<article>
<form>
<p>
<label for="message"> iframe :</label><input type="text" name="message" value="son" id="message" />
<input type="submit" />
</p>
</form>
<h4> iframe :</h4>
<p id="test"> </p>
<iframe id="iframe" src="xiebiji.com/works/postmessage/iframe.html"></iframe>
</article>
</section>
そしてiframeのHTMLコード
<form>
<p>
<label for="message"> :</label><input type="text" name="message" value="dad" id="message" />
<input type="submit" />
</p>
</form>
<p id="test"> 。</p>
そしてホームページのJSコード
var win = document.getElementById("iframe").contentWindow;
document.querySelector('form').onsubmit=function(e){
win.postMessage(document.getElementById("message").value,"*");
if (e.preventDefault){
e.preventDefault();
}
e.returnValue = false;
}
キーコードは次のとおりです.
win.postMessage(document.getElementById("message").value,"*");
postMessageは通信オブジェクトの1つの方法であるため、iframeに通信することは、iframeオブジェクトにpostMessageメソッドを呼び出すことである.postMessageには2つのパラメータがありますが、1つが欠けてはいけません.1番目のパラメータは伝達されるデータであり、2番目のパラメータは通信を許可するドメインであり、「*」はアクセスしないドメインを表し、すべてのドメインの通信を許可すると理解される.
そしてiframeのJSコード
var parentwin = window.parent;
window.onmessage=function(e){
document.getElementById("test")。innerHTML = e.origin + "say:" + e.data;
parentwin.postMessage('HI! "<span>'+e.data+'"</span>。',"*");
};
注:e.dataは転送されたデータを含み、e.originはソースドメインを指す