无法在 InstallShield Express 中运行 JavaScript?

ala*_*ncc 6 installshield uninstallation jscript

我正在使用 InstallShield Express 创建一个安装项目。

我尝试在“系统更改”之前为卸载添加自定义操作。

自定义操作是一个 JavaScript,它将打开一个窗口,如下所示:

window.open("https://www.example.com/", "_blank");
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试卸载该程序时,我收到一条错误消息:“Microsoft JScript 运行时错误,'window' 未定义。

为什么?

更新:

最后我选择使用 MSI DLL 而不是脚本来解决问题。这个问题我该怎么办?谢谢。

Ped*_*lin 2

NodeJS 中不存在 windows 对象。但是,如果您只想声明一个全局变量以便稍后使用它,您可以在全局对象中添加 open 方法,如下所示:

glboal.open = function whatever(url, param2){

// does the stuff you want

};
Run Code Online (Sandbox Code Playgroud)

然后你可以这样使用它:

conosle.log(global.open('https://www.example.com/','_blank')); 
Run Code Online (Sandbox Code Playgroud)

但我仍然不建议为此创建全局变量。在文件中创建一个函数并在需要时导入它。全局变量会导致耦合,并使代码更难以阅读。此外,此变量将在应用程序的整个生命周期中存在,如果您要创建更多变量,这可能不太好。

如果您想了解有关全局变量为何不好的更多信息:https://wiki.c2.com/ ?GlobalVariablesAreBad