Saya menggunakan InstallShield Express untuk membuat proyek penyiapan.

Saya mencoba menambahkan tindakan khusus untuk Penghapusan Instalasi, sebelum "Perubahan Sistem".

Tindakan kustom adalah JavaScript yang akan membuka jendela, seperti di bawah ini:

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

Namun, ketika saya mencoba untuk menghapus program, saya mendapatkan pesan kesalahan yang mengatakan "Microsoft JScript Runtime Error, 'window' tidak ditentukan.

Mengapa?

Pembaruan:

Akhirnya saya memilih menggunakan MSI DLL daripada script untuk menyelesaikan masalah. Apa yang harus saya lakukan dengan pertanyaan ini? Terima kasih.

6
alancc 23 April 2020, 03:02

1 menjawab

Jawaban Terbaik

Objek windows tidak ada di NodeJS. Namun, jika Anda hanya ingin mendeklarasikan variabel global untuk digunakan nanti, Anda dapat menambahkan metode open di objek global seperti:

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

// does the stuff you want

};

Dan kemudian Anda dapat menggunakannya dengan cara ini:

conosle.log(global.open('https://www.example.com/','_blank')); 

Tetapi saya masih tidak merekomendasikan membuat variabel global untuk ini. Buat fungsi dalam file dan impor saat Anda membutuhkannya. Variabel global dapat menyebabkan kopling, dan membuat kode lebih sulit dibaca. Selain itu, variabel ini akan ada sepanjang masa pakai aplikasi, dan ini mungkin tidak baik jika Anda akan membuatnya lebih banyak.

Jika Anda ingin membaca lebih lanjut tentang mengapa variabel global buruk: https://wiki.c2.com/?GlobalVariablesAreBad

2
Pedro Henrique Bufulin 1 Mei 2020, 18:20