The content of this article is about the postmessage code in Html5 that implements value transfer between child and parent windows. It has certain reference value. Friends in need can refer to it. I hope it will be helpful to you.
Recently, I encountered a problem when building a POS terminal. The value transfer problem between the child and parent windows. Because the POS machine has two screens, if a page is stretched and projected, it can be displayed on two screens. , but because it is a touch screen, when the first screen is operating, it will affect the second screen, and vice versa. Now that the requirements are clear and the problem is known, we need two windows to perform different operations
First the parent page:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Html5 postMessage</title>
<style>
#otherWin {
width: 600px;
height: 400px;
background-color: #cccccc;
}
#txt {
width: 500px;
height: 300px;
background-color: #cccccc;
}
</style>
</head>
<body>
<button id="btn">open</button>
<button id="send">send</button>
<input type="text" id="message" />
<br/><br/>
<p id="txt"></p>
<script>
window.onload = function() {
var btn = document.getElementById('btn');
var btn_send = document.getElementById('send');
var text = document.getElementById('txt');
var win;
btn.onclick = function() {
//通過window.open打開接收消息目標窗口
win = window.open('http://127.0.0.1:8080/mngapp/chatroom/win.html', 'popUp');
}
btn_send.onclick = function() {
// 通過 postMessage 向子窗口發(fā)送數據
win.postMessage( document.getElementById("message").value, 'http://127.0.0.1:8080/');
}
if (window.addEventListener) {
//為window注冊message事件并綁定監(jiān)聽函數
window.addEventListener('message', receiveMsg, false);
}else {
window.attachEvent('message', receiveMsg);
}
//監(jiān)聽函數,接收一個參數--Event事件對象
function receiveMsg(e) {
console.log("Got a message!");
console.log("Message: " + e.data);
console.log("Origin: " + e.origin);
text.innerHTML = "Got a message!<br>" +
"Message: " + e.data +
"<br>Origin: " + e.origin;
}
};
</script>
</body>
</html>
Then the sub-page:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Html5 postMessage</title>
<style>
#txt {
width: 500px;
height: 300px;
background-color: #cccccc;
}
</style>
</head>
<body>
<h1>The New Window</h1>
<p id="txt"></p>
<input type="text" id="message" />
<button id="send">send</button>
<script>
window.onload = function() {
var text = document.getElementById('txt');
var btn_send = document.getElementById('send');
var prent = null;
btn_send.onclick = function() {
// 通過 postMessage 向父窗口發(fā)送數據
freceiveMsg(prent);
}
//監(jiān)聽函數,接收一個參數--Event事件對象
function receiveMsg(e) {
console.log("Got a message!");
console.log("Message: " + e.data);
console.log("Origin: " + e.origin);
text.innerHTML = "Got a message!<br>" +
"Message: " + e.data +
"<br>Origin: " + e.origin;
//獲取父對象
prent = e;
}
function freceiveMsg(e) {
console.log("freceiveMsg:"+e);
e.source.postMessage(document.getElementById("message").value,
e.origin);
}
if (window.addEventListener) {
//為window注冊message事件并綁定監(jiān)聽函數
window.addEventListener('message', receiveMsg, false);
}else {
window.attachEvent('message', receiveMsg);
}
};
</script>
</body>
Recommended related articles:
html5 video how to achieve real-time monitoring of the current situation Play time (code)
html Combined with the industrial Internet to realize intelligent aircraft control (with code)
The above is the detailed content of Code for postmessage in Html5 to implement value transfer between child and parent windows. For more information, please follow other related articles on the PHP Chinese website!