子级(登录)
<div class="login"> <form > <div class="form-item"> <label for="username">用户名:</label> <input type="text" name="username" id="username" placeholder="请输出用户名"> </div> <div class="form-item"> <label for="password">明码:</label> <input type="text" name="password" id="password" placeholder="请输出明码"> </div> <div class="form-item"> <input type="submit" value="登录"> </div> </form> </div>
<script> // 监听父级传递过去的数据 window.addEventListener('message', function(e) { console.log('父widonw传递过去的数据:',JSON.parse(e.data)); }) const form = document.querySelector('form'); form.addEventListener('submit', function(e) { e.preventDefault(); // 获取用户名 const username = document.querySelector('#username').value; // 获取明码 const password = document.querySelector('#password').value; window.parent.postMessage({username, password}, '*'); }) </script>
父级
<body> <iframe src="./login.html" id="iframeByLogin"></iframe> <script> // 监听子级传递过去的数据 window.addEventListener('message', function(e) { console.log('子(登录iframe)传递过去的数据:',e.data ); }) const _iframeLogin = document.querySelector('#iframeByLogin'); _iframeLogin.onload = function() { let param = { username: 'admin', password: '123456' } _iframeLogin.contentWindow.postMessage(JSON.stringify(param), '*'); } </script> </body>