為了實現你的需求,我們需要在 JavaScript 中添加一個全域的鍵盤事件監聽器,專門捕捉 Ctrl + Enter 組合鍵。當該組合鍵被觸發時,程式會根據當前的狀態(編輯、導出文本、或速度設置模式)自動調用對應的「確認」函數。
以下是需要修改的具體地方:
請將以下代碼添加到 script 標籤中,建議放在 window.addEventListener('load', ...) 之前或其內部的初始化邏輯中。
JavaScript
/**
* Global keyboard listener for Ctrl+Enter to trigger confirm actions.
*/
document.addEventListener('keydown', function(e) {
if (e.ctrlKey && e.key === 'Enter') {
// 1. Check if in Edit Mode
if (isEditMode) {
const confirmBtn = document.getElementById('edit-confirm');
if (confirmBtn) {
exitEditModeConfirm();
return;
}
}
// 2. Check if in Export Text Mode
if (isExportTextMode) {
const confirmBtn = document.getElementById('export-confirm');
if (confirmBtn) {
// Assuming clicking the confirm button exits the mode
exitExportTextMode();
return;
}
}
// 3. Check if in Speed/Interval Adjustment Mode
// (If these use the same UI buttons as Edit Mode)
const genericConfirm = document.querySelector('.btn-confirm');
if (genericConfirm && genericConfirm.offsetParent !== null) {
genericConfirm.click();
}
}
});
在 renderExportTextUI 函數生成的 HTML 中,請確保 confirm 按鈕的 ID 為 export-confirm。
JavaScript
// Inside renderExportTextUI function, modify the btnDiv.innerHTML section:
btnDiv.innerHTML = `
<div class="ejceestextbtninner">
<div class="note-btn btn-confirm" id="export-confirm" title="Confirm">
<svg viewBox="0 0 24 24"><path fill="#4CAF50" d="M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z"/></svg>
</div>
</div>
`;
// Add the click listener for the export confirm button
document.getElementById('export-confirm').addEventListener('click', exitExportTextMode);
/**
* Function to exit Export Text Mode
*/
function exitExportTextMode() {
isExportTextMode = false;
renderRecordUI();
renderNoteUI();
updateToolHighlights();
}
這樣修改後,無論是在編輯棋局、查看導出文本,還是調整參數(只要該模式顯示了確認按鈕),使用者都可以通過 Ctrl + Enter 快速完成操作。