JQ 实现点击信息传递给前一个页面 不用window.opener这个方法
时间: 2024-04-22 21:23:07 浏览: 11
可以使用localStorage来实现点击信息传递给前一个页面,具体实现步骤如下:
1. 在前一个页面中设置一个监听事件,监听localStorage中的某个key的变化。
2. 在后一个页面中,通过localStorage.setItem()方法设置对应的key和value,实现信息的传递。
3. 在后一个页面中,通过localStorage.removeItem()方法移除对应的key和value,避免信息重复传递。
4. 在前一个页面中,一旦监听到localStorage中对应的key变化,即可获取到传递的信息,执行相应的操作。
需要注意的是,使用localStorage传递信息时,需要考虑信息的安全性和准确性,避免信息被篡改或者传递错误。
相关问题
JQ 点击当前页面 让前一个页面知道点击了什么
您可以通过以下步骤实现:
1. 在前一个页面中定义一个全局变量,用于存储被点击的内容。
2. 在当前页面中,使用 jQuery 绑定点击事件,获取被点击的内容,并将其存储到全局变量中。
3. 当前页面中跳转到前一个页面时,将全局变量传递给前一个页面。
4. 前一个页面接收到全局变量后,就可以知道当前页面点击了什么。
具体实现可以参考下面的代码示例:
在前一个页面中:
```javascript
var clickedItem = null; // 全局变量,用于存储被点击的内容
// 接收来自当前页面的点击信息
function receiveClickInfo(info) {
clickedItem = info;
console.log('Clicked Item: ' + clickedItem);
}
```
在当前页面中:
```javascript
$(document).on('click', '.item', function() {
var clickedInfo = $(this).text(); // 获取被点击的内容
window.opener.receiveClickInfo(clickedInfo); // 将点击信息传递给前一个页面
});
```
其中,`.item` 为被点击的元素的选择器,`window.opener` 表示前一个页面的窗口对象。当点击一个元素时,它的内容会被存储到全局变量 `clickedItem` 中,并通过 `receiveClickInfo` 函数传递给前一个页面。
需要注意的是,由于涉及到跨页面通信,需要确保当前页面和前一个页面在同一个域名下,否则可能会出现跨域问题。
window.opener
window.opener 是 JavaScript 中的一个属性,表示打开当前窗口的窗口对象。当一个窗口通过 window.open() 方法打开另一个窗口时,被打开的窗口可以通过 window.opener 属性访问到打开它的窗口对象。这个属性通常用于在子窗口中与父窗口进行通信。
通过 window.opener,你可以使用 JavaScript 在子窗口中调用父窗口的方法、访问父窗口的属性或者向父窗口传递数据。这种机制可以实现一些有趣的功能,比如子窗口可以通过调用父窗口的方法来改变父窗口的内容或者关闭父窗口。
需要注意的是,window.opener 只在通过 window.open() 方法打开的窗口中才会有值,如果当前窗口不是通过 window.open() 方法打开的,那么 window.opener 的值为 null。此外,由于安全原因,跨域的窗口之间无法直接访问对方的 window.opener 属性。