我正在使用 InstallShield Express 创建一个安装项目。
我试图在 "系统更改 "之前为卸载添加一个自定义操作。
自定义动作是一个JavaScript,它将打开一个窗口,如下图。
window.open("https://www.example.com/", "_blank");
然而,当我尝试卸载程序时,我得到一个错误信息 "Microsoft JScript Runtime Error, 'window' is not defined.
为什么会这样?
更新。
最后我选择使用MSI DLL代替脚本来解决问题。这个问题我应该怎么做?谢谢。
windows对象在NodeJS中不存在。但是,如果你只是想声明一个全局变量,以便以后使用它,你可以在全局对象中添加open方法,比如。
glboal.open = function whatever(url, param2){
// does the stuff you want
};
然后你就可以用这种方式来使用它。
conosle.log(global.open('https://www.example.com/','_blank'));
但我还是不建议为此创建一个全局变量。在文件中做一个函数,需要时再导入。全局变量会造成耦合,使代码更难读。另外,这个变量将存在于应用程序的整个生命周期,如果你要做更多的变量,这可能不是好事。
如果你想阅读更多关于为什么全局变量不好。https:/wiki.c2.com?GlobalVariablesAreBad(全局变量不好)