JavaScript нельзя запустить в InstallShield Express? - PullRequest
6 голосов
/ 23 апреля 2020

Я использую InstallShield Express для создания проекта установки.

Я пытаюсь добавить настраиваемое действие для деинсталляции перед «Системными изменениями».

Настраиваемое действие JavaScript, который откроет окно, как показано ниже:

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

Однако, когда я пытаюсь удалить программу, я получаю сообщение об ошибке «Ошибка выполнения Microsoft JScript,« окно »не определено. * 1008» *

Почему?

Обновление:

Наконец, я решил использовать MSI DLL вместо сценария для решения проблемы. Что мне делать с этим вопросом ? Спасибо.

1 Ответ

1 голос

Объект 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

...