| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- <!DOCTYPE html>
- <html lang="zh-CN">
- <head>
- <meta charset="UTF-8">
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
- <title>测试页</title>
- <style>
- body {
- display: flex;
- justify-content: center;
- align-items: center;
- height: 100vh;
- margin: 0;
- font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
- background-color: #f5f5f5;
- }
- .container {
- text-align: center;
- padding: 40px;
- }
- button {
- padding: 15px 40px;
- font-size: 16px;
- background-color: #1890ff;
- color: white;
- border: none;
- border-radius: 4px;
- cursor: pointer;
- transition: background-color 0.3s;
- }
- button:hover {
- background-color: #40a9ff;
- }
- </style>
- </head>
- <body>
- <div class="container">
- <h2>测试页面(模拟外部跨域页)</h2>
- <p>模拟 https://w7.12123wzcx.com 行为</p>
- <br>
- <button id="closeBtn">关闭并传参给父页面</button>
- </div>
- <script>
- document.getElementById('closeBtn').addEventListener('click', function () {
- // ====== postMessage 方案:不刷新父页面 + 跨域支持 ======
- if (window.opener) {
- // 通过 opener 向父页面(visitorEntry)发送消息
- window.opener.postMessage(
- {
- type: 'addUsersuccess',
- value: '1',
- extraData: {
- userId: '12345',
- userName: '张三',
- cardId: 'card_001',
- timestamp: Date.now()
- // ... 任意多个参数
- }
- },
- '*'
- );
- console.log('已通过 postMessage 发送参数 addUsersuccess=1');
- // 关闭当前窗口(不影响父页面状态)
- window.close();
- // 如果 close 无效,提示用户
- setTimeout(function () {
- if (document.visibilityState === 'visible') {
- alert('参数已发送,请手动关闭此窗口');
- }
- }, 300);
- } else {
- // 没有 opener(不是通过 window.open 打开的)
- alert('当前页面不是通过 window.open 打开的,无法使用 postMessage。\n请确认跳转方式是否为 window.open()');
- }
- });
- </script>
- </body>
- </html>
|