0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

ElectronではJavascriptのwindow.promptが使用出来ません。

Posted at

私はプログラム初心者なのですが、Javascriptで、ある程度動作するWebアプリを作成し、PCでも動作するようにElectronも勉強中です。
しかしながら、Electronでビルドした後に、Javascriptで書いたpromptの機能が動作しない事に気づき、あわててググりましたが、日本語のサイトには情報が少ないので投稿させていただきます。
てか、当たり前のことなのかな?

ElectronではJavascriptのwindow.promptが使用出来ません。まあnot supportedと表示されるので間違いなく動作しないのですが、私の様に初心者の方が気軽にJavascriptで書いたコードがElectronで動くからとGoogle Chromeで確認しながらコードを書いていると、後で泣きをみるかもしれないのでお伝えしておきます。
しかし、この問題というか、この仕様以外にどれほどの影響を受けるのか?は全くわかりませんので、ある程度認識した上で開発を進めるとショック度が少ないかと思います。

代替え案
window.promptはセキュリティ上の問題でサポートされていないようですが、いくつか代替えのノードモジュールがあるようです。

私の環境ではsmaltalkは動作しませんでした。
https://www.npmjs.com/package/smalltalk

electron-promptで代替えできることを確認しました。
https://www.npmjs.com/package/electron-prompt

但し、ノードモジュールはメインプロセスでしか動作しないようなので、ユーザー操作や入力情報などをレンダラープロセスからメインプロセスに送信して、またメインプロセスから入力内容を受診するというややこしいことをしなくてはなりません。そこはipc通信やremoteなどでググってくださいね。ただこれもセキュリティ上、メインプロセスで直接指定しない方が良いようです。
が、また一段かますのが...node integration true...悪魔の呪文

ど素人の私はレンダラープロセスにconst prompt = require('electron-prompt');を貼り付けたりして動かんなぁーと右往左往していました^^;

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?