父页面:
<iframe id="iframe" src="a.html" style="margin: 0;border: 0;padding: 0;width: 100%;height: 900px;"></iframe> <script> window.onload = function(){ document.getElementById('iframe').contentWindow.postMessage('初始化', '*') window.addEventListener('message', function (event) { var origin = event.origin; // 自己的业务逻辑 $.get(origin + "/api/pano/views/structure/detail?id=" + event.data,function (res) { // 替换链接地址 var content = res.content.replace(/<img [^>]*src=['"]([^'"]+)[^>]*>/gi, function (match, capture) { return match.replace(capture,(origin + capture)); }); layer.open({ type: 1, skin: 'layui-layer-rim', area: ['600px', '500px'], content: content }); }); }, false); } </script>
子页面a.html:
var parentEvent = null; window.onload = window.addEventListener('message', receiveMsg, false); function receiveMsg(e) { parentEvent = e; } function postMsg(data) { if(parentEvent){ parentEvent.source.postMessage(data, parentEvent.origin) } }