使用 Electron 的用户输入 JavaScript - Window.Prompt() 的替代方案

血腥罪人

首先,在在这里深入研究之前,我已经问过这个问题的更简单版本但是,当我搜索时,事情变得更加复杂,我可以再描述一下。

我正在尝试使用 Google 的 Blockly 创建一个电子应用程序。在 Blockly 的域中重命名变量会在用户浏览器中打开一个提示,要求输入新变量的名称,正如您在它自己的网站上看到的那样(单击“计数”并选择“重命名变量...”)。

问题是:Electron 不支持window.prompt(),如果我让代码保持原样,它也不会做任何事情,因此,经过一番搜索后,我了解到您可以覆盖Blockly.prompt以使用自己的代码。我的猜测:所以你可以使用替代方案window.prompt()

我安装electron-prompt并尝试使用它来获取用户在新提示窗口中的输入,以将其发送回 Blockly 处理重命名的核心函数。这是我正在尝试的:

var prompt = require('electron-prompt');
var setPrompt = function()
{ 
    return prompt
    ({
        title: 'Renaming',
        label: 'Renaming variable to:',
        type: 'input'
    })
};

var getPrompt = function()
{
    return setPrompt().then(function(value){return value})
}

var promptReturn = function()
{
    return getPrompt().then(function(value){return value})
}

Blockly.prompt = function(message, defaultValue, callback)
{
    callback(promptReturn().then(function(value){return value}));
};

编辑:从源代码electron-prompt在这里,并通过观察它,我试图从适应信息在这里,我改变成上述代码,推断prompt 回报的承诺但是,似乎callbackinBlockly.prompt不等待通过打开的模态输入setPrompt()并引发错误,但是如果我使用一个简单的函数只是返回一个字符串 in callback,它会按预期工作...

现在我很困惑,如果是我自己仍然使用承诺不对,或者是callbackBlockly.prompt不支持“等承诺” ...

希望这有助于解释我在查找有关此问题的更多信息后尝试使用的内容。

血腥罪人

我设法解决了它,我发布它以防有人需要关于Blockly.prompt覆盖的明确答案似乎callback覆盖时函数必须返回新变量的字符串,所以我尝试promise在覆盖中使用 并调用一个简单的函数来应用then()如下

var prompt = require('electron-prompt');
var renameVar = function(name)
{
    return name;
}

Blockly.prompt = function(msg, defaultValue, callback)
{
    prompt
    ({
        title: 'Renaming',
        label: 'Renaming variable to:',
        type: 'input'
    }).then((name)=>{callback(renameVar(name))})
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在Javascript中使用Window.prompt()

来自分类Dev

JavaScript代理的替代方案

来自分类Dev

Javascript:使用用户输入创建表格的任何更好的解决方案?

来自分类Dev

使用 ajax 或 javascript 将值从 window.prompt 传递到服务器

来自分类Dev

使用 JSX 的 React 替代方案

来自分类Dev

使用JavaScript收集用户输入以进行计算

来自分类Dev

使用JavaScript收集用户输入以进行计算

来自分类Dev

使用 javascript 获取并验证用户输入的 url

来自分类Dev

如何使用javascript验证用户输入

来自分类Dev

JavaScript window.scrollTo替代

来自分类Dev

JavaScript 回调函数中的替代方案以及如何使用它们

来自分类Dev

Django:如何使用Javascript的window.confirm()注销用户

来自分类Dev

如何在方案中接受用户输入并使用它

来自分类Dev

Javascript:回调注入替代方案?

来自分类Dev

使用接口扩展对象的设计替代方案

来自分类Dev

window.location(加上Y偏移量)替代方案?

来自分类Dev

Javascript:使用用户输入来搜索数组数组

来自分类Dev

如何使用数组填充javascript显示用户输入的文本或数字?

来自分类Dev

如何使用JavaScript从用户输入(URL)更改背景图像

来自分类Dev

使用javascript在发布请求中传递用户输入变量

来自分类Dev

接受用户输入以使用javascript执行计算

来自分类Dev

javascript如何使用用户输入添加构造函数对象

来自分类Dev

如何防止用户使用 Javascript 输入特定密钥

来自分类Dev

使用用户输入更改 Javascript 变量的值

来自分类Dev

使用Javascript window.location方法使用移动设备重定向用户

来自分类Dev

Javascript显示用户输入

来自分类Dev

使用Javascript Window.open

来自分类Dev

输入时没有可行的替代方案“是假的”

来自分类Dev

什么是该jQuery选择器的纯JavaScript替代方案?

Related 相关文章

  1. 1

    在Javascript中使用Window.prompt()

  2. 2

    JavaScript代理的替代方案

  3. 3

    Javascript:使用用户输入创建表格的任何更好的解决方案?

  4. 4

    使用 ajax 或 javascript 将值从 window.prompt 传递到服务器

  5. 5

    使用 JSX 的 React 替代方案

  6. 6

    使用JavaScript收集用户输入以进行计算

  7. 7

    使用JavaScript收集用户输入以进行计算

  8. 8

    使用 javascript 获取并验证用户输入的 url

  9. 9

    如何使用javascript验证用户输入

  10. 10

    JavaScript window.scrollTo替代

  11. 11

    JavaScript 回调函数中的替代方案以及如何使用它们

  12. 12

    Django:如何使用Javascript的window.confirm()注销用户

  13. 13

    如何在方案中接受用户输入并使用它

  14. 14

    Javascript:回调注入替代方案?

  15. 15

    使用接口扩展对象的设计替代方案

  16. 16

    window.location(加上Y偏移量)替代方案?

  17. 17

    Javascript:使用用户输入来搜索数组数组

  18. 18

    如何使用数组填充javascript显示用户输入的文本或数字?

  19. 19

    如何使用JavaScript从用户输入(URL)更改背景图像

  20. 20

    使用javascript在发布请求中传递用户输入变量

  21. 21

    接受用户输入以使用javascript执行计算

  22. 22

    javascript如何使用用户输入添加构造函数对象

  23. 23

    如何防止用户使用 Javascript 输入特定密钥

  24. 24

    使用用户输入更改 Javascript 变量的值

  25. 25

    使用Javascript window.location方法使用移动设备重定向用户

  26. 26

    Javascript显示用户输入

  27. 27

    使用Javascript Window.open

  28. 28

    输入时没有可行的替代方案“是假的”

  29. 29

    什么是该jQuery选择器的纯JavaScript替代方案?

热门标签

归档