バックスペース イベントがブラウザーによって処理されないようにしようとしてkeydown
います。jQuery ライブラリを使用しているため、元のイベントを取得する必要がありますが、一部のブラウザー (少なくとも Firefox) では、元のイベントを設定しようとするとエラーが発生します。 events keyCode = 0 の場合、そのプロパティには getter しか存在しないというエラーが表示されます。
function blockBackspace(event) {
var altKey = event.originalEvent.altKey;
var srcElementType = event.originalEvent.srcElement;
if( (altKey) || ((event.keyCode == 8) && (srcElementType != "text" && srcElementType != "textarea" && srcElementType != "password"))
|| ((event.ctrlKey) && ((event.keyCode == 78) || (event.keyCode == 82)) ) || (event.keyCode == 116) )
{
event.keyCode = 0;
event.returnValue = false;
event.originalEvent.keyCode = 0;
event.originalEvent.returnValue = false;
//sets process backspaceFlag to keep multiple handlers from removing text
processBackspace = true;
}
}
そのため、次に何をすべきか正確にはわかりません。解決策を見つけるたびに、さらに多くの問題が生じます。この問題を回避する方法があるに違いありません。そうしないと、他のテキスト領域 (私が構築しているもののようなもの) が機能しなくなります。