在InstallShield Express中无法运行JavaScript?

问题描述 投票:6回答:1

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

我试图在 "系统更改 "之前为卸载添加一个自定义操作。

自定义动作是一个JavaScript,它将打开一个窗口,如下图。

window.open("https://www.example.com/", "_blank");

然而,当我尝试卸载程序时,我得到一个错误信息 "Microsoft JScript Runtime Error, 'window' is not defined.

为什么会这样?

更新。

最后我选择使用MSI DLL代替脚本来解决问题。这个问题我应该怎么做?谢谢。

installshield uninstall jscript
1个回答
2
投票

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(全局变量不好)

© www.soinside.com 2019 - 2024. All rights reserved.