JavaScript 不能是 InstallShield Express 中的 运行?
JavaScript cannot be run in InstallShield Express?
我正在使用 InstallShield Express 创建安装项目。
我尝试在 "System Changes" 之前为卸载添加自定义操作。
自定义操作是一个JavaScript,会打开一个window,如下:
window.open("https://www.example.com/", "_blank");
但是,当我尝试卸载该程序时,出现错误“Microsoft JScript 运行时错误,'window' 未定义。
为什么?
更新:
最后我选择使用MSI DLL而不是脚本来解决问题。这个问题我该怎么办?谢谢。
NodeJS 中不存在 windows 对象。但是,如果你只是想声明一个全局变量以供以后使用,你可以在全局对象中添加 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
我正在使用 InstallShield Express 创建安装项目。
我尝试在 "System Changes" 之前为卸载添加自定义操作。
自定义操作是一个JavaScript,会打开一个window,如下:
window.open("https://www.example.com/", "_blank");
但是,当我尝试卸载该程序时,出现错误“Microsoft JScript 运行时错误,'window' 未定义。
为什么?
更新:
最后我选择使用MSI DLL而不是脚本来解决问题。这个问题我该怎么办?谢谢。
NodeJS 中不存在 windows 对象。但是,如果你只是想声明一个全局变量以供以后使用,你可以在全局对象中添加 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