怎样通过子类窗口获取父类窗口点击事件所获取的数据 jquery
时间: 2023-08-15 13:04:55 浏览: 80
在子窗口中获取父窗口点击事件获取的数据,可以通过在子窗口中监听 `window.opener` 的事件来实现。具体的实现方式取决于使用的框架和库。
以 jQuery 为例,可以在子窗口中通过 `window.opener` 访问到父窗口,并监听父窗口触发的事件。假设父窗口有一个按钮,点击按钮会触发一个 `click` 事件,并传递一些数据,可以在子窗口中通过以下方式获取到这些数据:
在父窗口中:
```html
<button id="my-button">Click me</button>
<script>
$('#my-button').click(function() {
var data = { foo: 'bar' }; // 假设要传递的数据是一个对象
window.open('child.html', '_blank', 'width=400,height=400');
window.localStorage.setItem('my-data', JSON.stringify(data));
});
</script>
```
在子窗口中:
```html
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script>
$(document).ready(function() {
var data = JSON.parse(window.localStorage.getItem('my-data'));
console.log(data); // 输出 { foo: 'bar' }
window.localStorage.removeItem('my-data');
$(window.opener.document).on('my-event', function(event, data) {
console.log(data); // 输出 { foo: 'bar' }
});
});
</script>
```
在子窗口中,获取到数据后,可以使用 `$(window.opener.document)` 来访问父窗口的 DOM,然后通过 `on` 方法来监听自定义事件,并在回调函数中处理父窗口传递过来的数据。在父窗口中,可以使用 `window.localStorage` 来存储数据,并在子窗口中读取。
阅读全文