JavaScript--关闭窗口

本文详细介绍了如何使用JavaScript的window.close()方法关闭浏览器窗口,包括关闭当前窗口和指定窗口。同时,文章还讲解了依赖性窗口的概念及其在不同浏览器中的表现,以及如何在JavaScript中实现依赖性窗口的关闭。

javascript--关闭窗口

window.close()关闭指定的浏览器窗口。如果不带窗口引用调用close()函数,javascript就关闭当前

窗口。在事件处理程序中,你必须指定window.close(),而不能仅仅使用close()。因为不带对象名字的cl

ose()调用等价于document.close()。

如果你执行close()方法去关闭一个不是由脚本程序打开的窗口,在internet explorer中就会出现一个

确认对话框让用户选择是否关闭窗口。如果在历史列表中只有当前一个记录,那么在navigator中就不会出现对

话框。因为,新窗口在会话历史中没有任何文档。 然而,如果你使用close()退出最后运行的浏览器实例,

确认对话框就会出现。看看下面在2类浏览器中出现的对话框样子:

例如:

点击下面的链接打开一个新窗口,第1个链接使用javascript的window.open()方法来打开一个窗口,第2

个链接简单地使用target属性实现同样目的:

launch window (with javascript)

launch window (with html)

页面tryclose.html显示一个按钮,它负责执行window.close()方法:

当你点击第1个链接打开新窗口后,浏览器就“记住”了它是由一个脚本程序生成的。所以,当你点击按钮

时,新窗口不用再确认操作就被关闭。第2个链接是另外一回事了,它不使用任何javascript打开一个新窗口,

当你点击按钮时,internet explorer将显示一个确认对话框。然而,navigator会立即关闭这个窗口,因为,

新窗口在会话历史中没有任何文档。

点击后关闭窗口:

许多标准的应用程序都有一个about对话框,当用户在其中任何地方点击一次鼠标时,窗口就被关闭。

about

点击链接后,生成一个新窗口。然后,你可以在其中点击任何地方,就关闭那个窗口。在文件about.html

的head区域,添加下面的脚本程序:

 

依赖性窗口:

窗口的依赖性特征定义了是否窗口应该是一个当前窗口的依赖性子窗口。依赖窗口就是当它的父窗口关闭

时,它也随即关闭。

例如:

function opendep() {

win = window.open("depwin.html", "dep", "height=200,width=400");

}

如果当前窗口关闭时,或者调入一个新的url时,我们将使用onunload事件处理程序来关闭依赖性窗口:

注意,当前文档被卸载时,新窗口将关闭,即使当前窗口仍然打开。下面是closedep()函数的代码:

function closedep() {

if (win && win.open && !win.closed) win.close();

}

注意,在试图关闭前,我们必须检查窗口是否存在。


======================================================
在最后,我邀请大家参加新浪APP,就是新浪免费送大家的一个空间,支持PHP+MySql,免费二级域名,免费域名绑定 这个是我邀请的地址,您通过这个链接注册即为我的好友,并获赠云豆500个,价值5元哦!短网址是http://t.cn/SXOiLh我创建的小站每天访客已经达到2000+了,每天挂广告赚50+元哦,呵呵,饭钱不愁了,\(^o^)/
<think>我们正在处理用户关于“javascript-obfuscator not found”报错的问题。根据引用[1]的内容,用户之前可能在windows环境下遇到了类似的问题(rsync命令未找到),并提供了解决方案:下载rsync并将文件拷贝到Git的相关目录,然后重启Git Bash。 然而,用户现在遇到的是“javascript-obfuscator not found”报错。我们需要考虑这个报错的可能原因和解决方案。 可能原因: 1. javascript-obfuscator 没有全局安装,因此命令行找不到这个命令。 2. 虽然安装了,但是没有将安装路径添加到系统的环境变量中。 3. 安装过程中出现错误,导致安装不完整。 解决方案: 1. 确保已经通过npm全局安装了javascript-obfuscator。可以使用以下命令安装: ``` npm install -g javascript-obfuscator ``` 2. 如果已经安装,检查全局安装的路径是否在系统的环境变量中。可以通过以下命令查找全局安装路径: ``` npm bin -g ``` 然后将该路径添加到系统的PATH环境变量中。 3. 如果是在Windows上使用Git Bash,可能需要注意环境变量的继承问题。有时候Git Bash可能不会继承所有的系统环境变量,可以尝试在Git Bash中执行以下命令临时添加路径: ``` export PATH=$PATH:/path/to/npm/global/modules ``` 或者检查Git Bash的环境变量设置。 4. 重启终端(如Git Bash)以使环境变量生效。 另外,引用[1]中提到了类似问题的处理方式(将rsync的可执行文件拷贝到Git的usr/bin目录下),对于javascript-obfuscator,我们也可以尝试类似的方法: - 首先找到javascript-obfuscator的可执行文件(通常是javascript-obfuscator.cmd或者一个没有扩展名的文件,位于npm全局安装目录下)。 - 然后将其复制到Git安装目录下的usr/bin目录中(例如:`C:\Program Files\Git\usr\bin`)。 - 或者,也可以将npm的全局安装目录添加到系统PATH环境变量中,这样Git Bash就能找到它。 但是,更推荐的方法是正确设置PATH环境变量,而不是手动复制文件。 注意:在Windows上,npm全局安装的脚本通常位于: - `%AppData%\npm`(当使用用户安装时) - 或者Node.js安装目录下的`node_modules`(如果使用管理员权限安装,可能位于`C:\Program Files\nodejs\node_modules`) 因此,请用户检查是否已经全局安装,以及PATH是否包含正确的路径。 步骤总结: 1. 安装:运行 `npm install -g javascript-obfuscator` 2. 获取全局安装路径:`npm bin -g`,并记下该路径。 3. 将该路径添加到系统环境变量PATH中(通过系统属性->高级->环境变量)。 4. 重启Git Bash(或者其他终端)再试。 如果问题仍然存在,可以尝试在Git Bash中直接运行全局安装路径下的javascript-obfuscator命令(带上完整的路径),以验证是否安装成功。 如果用户使用的是nvm(Node Version Manager)管理Node.js,那么全局安装的路径可能会随着Node.js版本的变化而变化,需要确保当前使用的Node.js版本下的全局路径在PATH中。 另外,在Windows上,可能还需要检查文件扩展名是否被正确识别(比如.cmd文件是否可以被执行),以及是否有权限问题。 根据引用[1]的思路,如果上述方法无效,我们可以尝试将npm全局安装目录中的javascript-obfuscator相关文件(包括可执行文件和依赖)复制到Git的usr/bin目录下,但这种方法可能会带来维护问题(比如更新时需要重新复制)。 因此,我们建议优先采用修改环境变量的方法。 现在,我们为用户提供清晰的步骤。 </think>针对“javascript-obfuscator not found”报错问题,结合系统环境变量和依赖管理,解决方案如下: ### 解决方法 1. **全局安装工具** 确保已通过npm全局安装javascript-obfuscator: ```bash npm install -g javascript-obfuscator ``` 安装后验证版本: ```bash javascript-obfuscator --version ``` 2. **环境变量配置** - 查找npm全局安装路径: ```bash npm bin -g ``` - 将此路径(如`C:\Users\<用户名>\AppData\Roaming\npm`)添加到系统环境变量`PATH`中 (Windows:系统属性 → 高级 → 环境变量 → 编辑PATH) 3. **Git Bash路径兼容(关键步骤)** 若在Git Bash中报错,需将npm路径链接到Git的Unix风格目录: ```bash ln -s "$(npm bin -g)/javascript-obfuscator" /usr/bin/javascript-obfuscator ``` > 此操作需以管理员权限运行Git Bash[^1] 4. **重启终端** 完成配置后**必须重启所有终端窗口**使环境变量生效 5. **备用方案** 若仍报错,手动复制可执行文件到Git目录: - 从`npm bin -g`输出路径中找到`javascript-obfuscator.cmd` - 复制到Git的`usr/bin`目录(如`C:\Program Files\Git\usr\bin`) ### 验证是否解决 ```bash which javascript-obfuscator # 应返回有效路径 javascript-obfuscator --help # 显示帮助菜单 ``` --- ### 常见问题原因 | 原因 | 解决方案 | |---------------------|----------------------------| | 未全局安装 | 执行`npm install -g` | | PATH未包含npm路径 | 手动添加环境变量 | | Git Bash路径隔离 | 创建符号链接或复制文件 | | 终端未重启 | 关闭所有窗口后重新打开 | > 提示:Windows下符号链接需开启开发者模式(设置 → 更新与安全 → 开发者选项)
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值