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
中的文本.多次单击它会选择文本,它可以让我删除它。但是我无法写新的文本。
预期行为
打开
index.html
在浏览器中,然后重复这些步骤。在浏览器中,元素显示一个光标,我可以编辑其中的文本。我不确定我是否做错了什么,或者这是否真的是预期的行为。
这里是
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/