Javascript html5 PostMessage跨域-相反版本
我已经创建了从一个域到另一个域的PostMessageJavascript html5 PostMessage跨域-相反版本,javascript,html,postmessage,Javascript,Html,Postmessage,我已经创建了从一个域到另一个域的PostMessage <iframe id="frameId" src="http://b.net/2.html" onload="sendCommand();"> </iframe> <script type="text/javascript"> function sendCommand() {
<iframe id="frameId" src="http://b.net/2.html" onload="sendCommand();"> </iframe>
<script type="text/javascript">
function sendCommand() {
var receiver;
receiver = document.getElementById('frameId').contentWindow;
receiver.postMessage(receiver, 'http://b.net');
}
</script>
</body>
</html>
在域A中,我有域B的框架。我可以从A向B发送消息。现在我想做相反的事情。我需要一个按钮在框架(在弹出窗口)。当我点击那里时,我需要从B向A发送消息
<iframe id="frameId" src="http://b.net/2.html" onload="sendCommand();"> </iframe>
<script type="text/javascript">
function sendCommand() {
var receiver;
receiver = document.getElementById('frameId').contentWindow;
receiver.postMessage(receiver, 'http://b.net');
}
</script>
</body>
</html>
在域A上:
<iframe id="frameId" src="http://b.net/2.html" onload="sendCommand();"> </iframe>
<script type="text/javascript">
function sendCommand() {
var receiver;
receiver = document.getElementById('frameId').contentWindow;
receiver.postMessage(receiver, 'http://b.net');
}
</script>
</body>
</html>
函数sendCommand(){
无功接收器;
receiver=document.getElementById('frameId').contentWindow;
receiver.postMessage(receiver,'http://b.net');
}
在域B中:
<iframe id="frameId" src="http://b.net/2.html" onload="sendCommand();"> </iframe>
<script type="text/javascript">
function sendCommand() {
var receiver;
receiver = document.getElementById('frameId').contentWindow;
receiver.postMessage(receiver, 'http://b.net');
}
</script>
</body>
</html>
<!DOCTYPE HTML>
<html>
<head>
<script>
var F= function(){}
</script>
</head>
<body>
Hello THere
<button onclick="F()">Click me</button>
<script>
window.addEventListener('message', function(event) {
alert(event.origin);
}, false);
</script>
</body>
</html>
var F=函数(){}
你好
点击我
window.addEventListener('message',函数(事件){
警报(事件来源);
},假);
我解决了这个问题:
<iframe id="frameId" src="http://b.net/2.html" onload="sendCommand();"> </iframe>
<script type="text/javascript">
function sendCommand() {
var receiver;
receiver = document.getElementById('frameId').contentWindow;
receiver.postMessage(receiver, 'http://b.net');
}
</script>
</body>
</html>
这是好的解决方案吗
<iframe id="frameId" src="http://b.net/2.html" onload="sendCommand();"> </iframe>
<script type="text/javascript">
function sendCommand() {
var receiver;
receiver = document.getElementById('frameId').contentWindow;
receiver.postMessage(receiver, 'http://b.net');
}
</script>
</body>
</html>
<!DOCTYPE HTML>
<html>
<head>
<script>
var t;
function load (){
window.addEventListener('message', function(event) {
console.log(event.data) ;
window.clearInterval(t);
return;
}, false);
}
</script>
</head>
<body onload="load()">
<iframe id="frameId" src="http://b.net/2.html" onload="sendCommand();"> No Frame!</iframe>
<script type="text/javascript">
function sendCommand() {
// post massage to domain B
var receiver = document.getElementById('frameId').contentWindow;
receiver.postMessage("Start listening", 'http://b.net');
}
</script>
</body>
</html>
<!DOCTYPE HTML>
<html>
<head>
<script>
var F= function(){
// Send message from Iframe Page to domain A
parent.postMessage("From Iframe Page ","*");
}
</script>
</head>
<body>
Hello There
<button onclick="F()">Click me</button>
<script>
// Listen events
window.addEventListener('message', function(event) {
console.log(event.data)
}, false);
</script>
</body>
</html>
变量t;
函数加载(){
window.addEventListener('message',函数(事件){
console.log(事件数据);
视窗间隔(t);
返回;
},假);
}
没有框架!
函数sendCommand(){
//对域B进行后期按摩
var receiver=document.getElementById('frameId').contentWindow;
receiver.postMessage(“开始监听”http://b.net');
}
var F=函数(){
//将消息从Iframe页面发送到域A
parent.postMessage(“来自Iframe页面”,“*”);
}
你好
点击我
//倾听事件
window.addEventListener('message',函数(事件){
console.log(event.data)
},假);