(この回答の続き)
次のことを試みるたびに確認ポップアップを表示するスクリプトを (Greasemonkey を使用して) 作成しようとしています。
- 新しい問題を提出する、または
- 新しいコメントを投稿します。
押すことによってCtrl + Enter:
ユーザーがOk
ポップアップを押すと、スクリプトは送信を許可し
ますが、ユーザーがCancel
ポップアップを押すと、スクリプトは送信を停止します。
上記の回答のスクリプトは、これらの場合に問題なく機能します。
問題を送信する別の方法があることに気付きました:問題のタイトル textboxにフォーカスを置いてまたはを
押します。 EnterCtrl+Enter
これもスクリプトでカバーしたいと思います。
以下は私のコードです。新しい問題のページ ( https://github.com/darkred/test/issues/new
) を新しいタブで開いた場合_(つまり、単一ページのアプリケーション ワークフロー、別名 History API 経由ではない)_)、を押してもスクリプトは動作します。Ctrl+Enter
New issue
私がまだ抱えている問題は、ボタンをたどって(つまり、History APIを介して)新しい問題ページに移動し、タイトルテキストボックスを
押すCtrl+Enterか、単に押すとEnter、ポップアップが一時的に表示されますが、送信されないことですブロックされました。
(function () {
function init() {
var targArea = document.querySelector('#issue_title'); // New issue title
function manageKeyEvents(zEvent) {
if (zEvent.ctrlKey && zEvent.keyCode === 13) { // and the focused element is the issue title textbox
if (confirm('Are you sure?') === false) {
zEvent.stopPropagation();
zEvent.preventDefault();
// } else {
// var btn = document.querySelector('.btn-primary'); // 'Submit new issue' button
// btn.click();
}
}
}
if (targArea !== null) {targArea.addEventListener('keydown', manageKeyEvents);}
}
init();
document.addEventListener('pjax:end', init); // for the History API
})();
力:
- https://github.com/darkred/test/issuesを開き、
- ボタンをクリックし
New Issue
ます (History API 経由でhttps://github.com/darkred/test/issues/newにリダイレクトされます。 - (フォーカスが問題のタイトルのテキスト ボックスにあることに気付くでしょう)
問題のタイトルとして 123 と入力し、問題のタイトルのテキスト ボックスにフォーカスを維持します (問題の本文は空のままにします)。 - 押すCtrl+Enter(または単にEnter),
- 確認のポップアップが一瞬表示さ
れますが、送信はブロックされません。
スクリプトの何が問題になっていますか?
参考までに、 GitHubのキーボード ショートカット リストのリストを次に
示します。新刊ページで。