javascript - 在 Electron 中出现 `alert` 后无法编辑输入元素

标签 javascript html electron

TLDR
我正在学习 Electron 。我有一个 HTML 元素 <input type="text"> ,我可以编辑其中的文字。在我做 alert 之后, 当我点击 input元素它不显示光标,并且在键盘上按下键不会更改元素中的文本。如果我在浏览器中做同样的事情,这不会发生,我不确定我是否做错了什么。
最小的、可重现的例子
设置
在终端的空文件夹中写入:

npm init # And leave the defaults
npm install --save-dev electron
然后创建index.js :
const {app, BrowserWindow} = require("electron");

app.on('ready', () => {
    let b = new BrowserWindow();
    b.loadFile("index.html");
});
index.html :
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Test</title>
</head>

<body>
    <input type="text">
    <button onclick="alert('foo');">Hi</button>
</body>

</html>
重现步骤
  • 在终端上写npx electron .启动应用程序。
  • 编辑 input 中的文本
  • Hi按钮。
  • 关闭对话框。
  • 点击input元素。

  • 该元素没有显示光标,也没有更改以显示我正在编辑它。按下键盘上的键不会更改 input 中的文本.
    多次单击它会选择文本,它可以让我删除它。但是我无法写新的文本。
    Actual behaviour
    预期行为
    打开index.html在浏览器中,然后重复这些步骤。在浏览器中,元素显示一个光标,我可以编辑其中的文本。
    Expected behaviour

    我不确定我是否做错了什么,或者这是否真的是预期的行为。
    这里是 package.json如果这里的一些信息有帮助:
    {
        "name": "test",
        "version": "1.0.0",
        "description": "",
        "main": "index.js",
        "scripts": {
            "test": "echo \"Error: no test specified\" && exit 1"
        },
        "author": "",
        "license": "ISC",
        "devDependencies": {
            "electron": "^17.1.2"
        }
    }
    

    我在发布后测试它时注意到的一件奇怪的事情是,如果我最小化窗口并再次打开它,我就可以编辑输入。如果我打开和关闭开发人员工具,也会发生这种情况。

    最佳答案

    所以,这是一个非常奇怪的问题。
    在我的系统上复制代码后,一切似乎都正常工作。 IE:警告框关闭,仍然可以将光标聚焦在文本框内,甚至可以毫无问题地编辑文本框。
    由于 Electron 不会以任何方式改变 Chrome 的正常行为并且它在我(和其他人)系统上正常工作,因此只能得出一个结论。 Chrome 有问题。
    要消除 Chrome 文件损坏的任何可能性,请尝试删除您的 node_modules文件夹和您的 package-lock.json文件。
    在此之后,通过运行 npm install 重新安装 Electron在命令提示符下。

    关于javascript - 在 Electron 中出现 `alert` 后无法编辑输入元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71534851/

    相关文章:

    c# - 如何在javascript中存储值并在服务器端使用它

    javascript - Angular JS 和 Ionic - $http.post 上的错误,帮助我理解

    html - 如何仅使用域名创建主页网址?

    javascript - 与不可点击的背景图片链接

    javascript - 如何实现 window 与无框 Electron 窗对接

    javascript - jquery-1.8.1 IE7 中的参数无效 - getElementsByTagName

    javascript - 如何设置 Electron 浏览器窗口 DevTools 宽度?

    javascript - 如何获取包含滚动的 Div 宽度?

    html - electron webview 模拟手机屏幕

    electron - 如何将在 Electron 上开发的桌面应用程序打包成.exe?