Электронный пользовательский `window.prompt ()` (пользовательский, так как подсказки не поддерживаются) - PullRequest
0 голосов
/ 22 сентября 2018

Каждый, кто когда-либо пытался использовать Electron, вероятно, знает, что он не поддерживает window.prompt(), а никогда не будет поддерживать , как сказали разработчики проекта в сообщении ниже. enter image description here

Поскольку разработчики Electron даже не рассматривали возможность использования этой функции, я подумал о том, чтобы попробовать ее самостоятельно.

Я провел некоторое исследование.Проверка таких вещей, как «Custom window.prompt ()», «переопределение стандартного приглашение (() javascript» и т. Д.), Не принесла пользы.Наиболее релевантная статья была о пользовательских окнах модального ввода jQueryUI.

Поскольку ни одно из них уже не было доступно (или, возможно, я всего лишь полный Googleklutz [человек, которому трудно выбрать подходящие условия поиска или интерпретировать результаты)страница при использовании поисковой системы в Интернете, в частности, Google]) Я попытался сделать все сам.

Я создал разметку для модального (простой div с input и кнопкой отправки).function prompt(a, b) {...} показывал, что поле и другая функция (локальная) прослушивали кнопку отправки для отправки приглашения, затем устанавливали переменную, определенную в родительской функции (prompt(), чтобы она (родитель) могла вернуть это(через return). Я был робким, чтобы выяснить, что return из prompt() вызывается сразу после срабатывания функции waws, поэтому для const a = prompt("What shall the value of 'a' be?"); => a === "" всегда было верно.

Я уже рассмотрел вопрос об использовании async function prompt(...) {...}. Вещи, которые сохранили мой статус только что "рассмотрел", были: а) я никогда не использовал асинхронный ранее;и б) я быстро догадался (поправьте меня, если ошибся), что это приостановит весь документ, так что вы не сможете открыть окно, ввести в него что-нибудь, отправить его.

Деятельность, описанная в параграфе перед предыдущей, была моей попыткой год назад (сдался), увы, теперь я снова сталкиваюсь с той же проблемой.Теперь я чувствую себя в безопасности, заявляя, что это беспокоило меня уже год.

Я не хочу открывать другое окно (например, через window.open()) и иметь его как подсказку (как ваниль window.alert()).делает).Зачем?Если пользователь получает приглашение, но открывает другое окно (например, Google для поиска того, что ввести), он может открыть мое приложение, и приглашение останется свернутым, что приведет к путанице, почему все приложение зависло (возможно, оно забыло, что оно имелогде-то откроется приглашение).Если это действительно необходимо иметь в новом окне, оно должно быть безрамным, чтобы оно могло выглядеть как часть DOM моего приложения.

Любой совет, совет, ссылка, библиотека, модуль узлаили, в конце концов, кусок кода будет чрезвычайно полезен!

...