jquery 点击按钮window.open打开新页面,点击另外按钮关闭之前打开的页面有哪些方式
时间: 2024-12-11 15:22:21 浏览: 27
jQuery 中,你可以使用 `window.open` 功能打开新的浏览器窗口,同时为了实现点击其他按钮关闭之前的页面,可以采用以下几种方法:
1. **JavaScript全局变量**:
- 使用一个全局变量来跟踪当前打开的窗口引用,当需要关闭时,通过这个变量找到对应的窗口并调用 `close()` 方法。
```javascript
var activeWindow;
function openPage() {
activeWindow = window.open('new_page.html');
}
function closeActiveWindow() {
if (activeWindow) {
activeWindow.close();
}
}
// 然后在按钮点击事件中使用这两个函数
$('#button1').click(openPage);
$('#button2').click(closeActiveWindow);
```
2. **事件监听**:
- 可以给所有可能关闭的按钮添加一个通用的事件处理器,检测到目标窗口是否是你想要关闭的那个。
```javascript
function setActiveWindow(window) {
if (typeof activeWindow !== 'undefined') {
activeWindow.focus(); // 保持焦点
}
activeWindow = window;
}
function closeModal() {
setActiveWindow(window.parent);
}
$('#button1').click(function() {
setActiveWindow(window.open('new_page.html'));
});
$('#button2').click(closeModal);
```
3. **HTML5 History API** (仅适用于现代浏览器):
- 如果允许的话,可以利用 HTML5 的 history API 来替代传统的方式,通过 pushState 和 popstate 监听历史状态变化来控制页面。
```javascript
function openPage() {
window.history.pushState(null, null, '#new-page');
}
function closeCurrentPage() {
window.history.back();
}
// 同样地,绑定按钮事件
$('#button1').click(openPage);
$('#button2').click(closeCurrentPage);
```
请注意,对于旧版浏览器,可能需要处理一些兼容性问题,比如上述的 `history` API。在实际应用中,请选择最适合你项目需求的方式来实现。
阅读全文