##何がしたかったのかと言うと。
「prompt で onKeyUp を 取りたかった」
でも、できそうにないので「もどき」を自分で作ることにしました。
ようは入力欄に入力した後に、[OK]を押すのが面倒くさかったのです。
タブキー→スペースキーでも、クリックでも大して変わらないのですが、少しでも省略したかった。
明確に用途が決まっていて、入力欄には12桁の番号をペーストするだけだったので、ペーストされたら即時に次に進んでほしい。というのが これを作った理由です。
/* promptもどきを表示(Toastもどきの使い回し) */
var sc = document.scrollingElement.scrollTop;
var text = document.createElement("span");
var prm = "何か入力して下さい。<br><br>";
prm += "<input type=text id=memo size=20 placeholder='追跡番号とか' value=''><br><br>";
prm += "<input type=button id=ok value='OK'> ";
prm += "<input type=button id=cancel value='キャンセル'>";
prm += "<p id=output></p>";
text.innerHTML=prm;
var ts = text.style;
ts.color = '#000';
ts.backgroundColor = 'white';
ts.padding = '15px';
ts.border = '1px solid gainsboro';
ts.boxShadow = '3px 3px 10px';
ts.zIndex = '100';
document.body.appendChild(text);
ts.position = 'absolute';
ts.top = 50 + sc + 'px';
ts.left = (window.innerWidth / 2)-(text.offsetWidth / 2) + 'px';
/* イベント関係の処理 */
var m=document.getElementById('memo');
var o=document.getElementById('output');
m.focus();
m.onkeyup = input_check;
/* 入力チェック */
function input_check() {
/* 何かテキトーにしたいことをする */
}
/* [OK]を押した場合、次の処理へ。(入力内容のチェックはしてない) */
document.getElementById('ok').onclick = next;
function next() { alert(m.value); cls(); }
/* [キャンセル]を押した場合は、ただ閉じる。 */
document.getElementById('cancel').onclick = cls;
function cls() { document.body.removeChild(text); }
動作確認環境
Windows 10
Google Chrome 67