ElectronJS - 使用本地键盘快捷键在 Textarea 中制作粗体文本
ElectronJS - Make bold text in Teaxtarea with local keyboard shortcut
我正在尝试在 ElectronJS 中制作一个文本编辑器,作为我在 Electron 中的第一个应用程序。
我按应有的方式获得了 Textarea 和快捷方式设置,但在按 CTRL+B 时,我无法使 textarea 中的选定文本变粗。我可以在正确的方向上使用一些帮助来完成这项工作。
到目前为止,我已经尝试使用 execCommand 切换粗体,但出现错误:
文档未定义
Main.js
menu.append(new MenuItem({
label: 'Shortcuts',
submenu: [{
role: 'Bold',
accelerator: process.platform === 'darwin' ? 'Cmd+B' : 'Ctrl+B',
click: () => {
document.execCommand('bold');
}
}]
}))
Menu.setApplicationMenu(menu)
我也在 renderer.js
中尝试过,但效果不佳。
我做错了什么?
这实际上回答了问题:
来自 link 的内容:
如果您需要自定义文本区域,请使用具有 contenteditable 属性的另一个元素(如 DIV)重现其行为。
它更具可定制性,也是一种更现代的方法,textarea 仅适用于纯文本内容,不适用于丰富的内容。
<div id='fake_textarea' contenteditable></div>
可以使用 CSS 溢出 属性 重现滚动条。
你可以正常地在表单中使用这个假的文本区域,即:如果你必须通过 POST 方法提交它的内容,你可以这样做(with jQuery):
<input type='hidden' id='fake_textarea_content' name='foobar' />
...
$('#your_form').submit(function()
{
$('#fake_textarea_content').val($('#fake_textarea').html());
});
我正在尝试在 ElectronJS 中制作一个文本编辑器,作为我在 Electron 中的第一个应用程序。 我按应有的方式获得了 Textarea 和快捷方式设置,但在按 CTRL+B 时,我无法使 textarea 中的选定文本变粗。我可以在正确的方向上使用一些帮助来完成这项工作。
到目前为止,我已经尝试使用 execCommand 切换粗体,但出现错误: 文档未定义
Main.js
menu.append(new MenuItem({
label: 'Shortcuts',
submenu: [{
role: 'Bold',
accelerator: process.platform === 'darwin' ? 'Cmd+B' : 'Ctrl+B',
click: () => {
document.execCommand('bold');
}
}]
}))
Menu.setApplicationMenu(menu)
我也在 renderer.js
中尝试过,但效果不佳。
我做错了什么?
这实际上回答了问题:
来自 link 的内容:
如果您需要自定义文本区域,请使用具有 contenteditable 属性的另一个元素(如 DIV)重现其行为。
它更具可定制性,也是一种更现代的方法,textarea 仅适用于纯文本内容,不适用于丰富的内容。
<div id='fake_textarea' contenteditable></div>
可以使用 CSS 溢出 属性 重现滚动条。
你可以正常地在表单中使用这个假的文本区域,即:如果你必须通过 POST 方法提交它的内容,你可以这样做(with jQuery):
<input type='hidden' id='fake_textarea_content' name='foobar' />
...
$('#your_form').submit(function()
{
$('#fake_textarea_content').val($('#fake_textarea').html());
});