web-dev-qa-db-ja.com

InstallShield ExpressでJavaScriptを実行できませんか?

InstallShield Expressを使用してセットアッププロジェクトを作成しています。

「システムの変更」の前に、アンインストールのカスタムアクションを追加しようとしています。

カスタムアクションは、次のようにウィンドウを開くJavaScriptです。

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

しかし、プログラムをアンインストールしようとすると、「Microsoft JScriptランタイムエラー、 'ウィンドウ'が定義されていません。

どうして?

更新:

最後に、問題を解決するために、スクリプトの代わりにMSI DLL=を使用することを選択しました。この質問をどうすればいいですか?ありがとう。

6
alancc

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