2017-12-23 15 views
0

jQueryとjquery-addressやjqueryvalidationのようなjqueryプラグインをベースにした単一のページアプリケーションがあります。理由がなくkeyupとkeydownイベントが呼び出されました

このアプリケーションでは、ページ間を移動すると、いくつかの時間のためのアプリケーションで作業した後、私はkeyUpイベント、およびKeyDownイベントのイベントがあることクロームからこの奇妙な振る舞いを得た単一ページのアプリケーション機能

を提供するために、divを隠し、示す使用しています入力のラッパーがcss display:noneプロパティーを持つアプリケーションのすべての単一入力で自動的にトリガーされます。

このバグはすべてのマシンで再生されません。別のサーバーにアプリケーションをインストールしても、すべてのサーバーでこのバグは発生しません。

と私は同じマシン上でシークレットモードを使用している場合は、メインウィンドウ上のキャッシュとハードリロードをクリアしながら、それはシークレットモードで再現していないだろう、このバグは、複数の有線取得するには、問題を解決することはできません

I私たちが持っているすべてのJavaScriptコードを削除し、単一のhtmlフォームとj Queryライブラリを保持し、コンソールを使って成功したajax呼び出しを行いました。これらのイベントはフォームにある唯一の2つの隠し入力を呼びます。目に見える何も起きなかった!!

最終ソースコード

<!DOCTYPE html> 
<html lang="en"> 
<head> 
</head> 
<body> 
<div style="display: none"> 
    <input id="username" name="username" type="username"> 
    <input id="password" name="password" type="password"> 
</div> 
<script src="./js/lib/jquery-1.11.1.min.js"></script> 
</body> 
</html> 

、ここでコンソールのスクリーンショットを、あなたは私だけ monitorEvents($( "身体")[0])を実行して見ることができます。 $ .getJSON( "http://localhost:3000"); イベントを発動しました

なぜこれらのイベントがトリガされているのかわかりませんでしたが、なぜ彼らにisTrustedがあるのか​​わかりません:true、キー属性またはkeyCode、あなたの鍵は、BTW

をシミュレート/押されているもの:私は5日以上、これらの作業を終えた後、ブラウザ

enter image description here

+0

経験が無い理由で起こった、100%の問題があり、プログラミング何で私たちを示しています。 – Aria

+0

VM2993の「リンク」をクリックして、それらのイベントがどこから来たのか確認しましたか? – Dardanboy

+0

VM2993は、monitorEvents($( "body")[0])のリスナーにすぎません。私がクリックすると、デバッガによって追加されたコードが表示されます(function(e){console.log(e.type、e);}) – Jondi

答えて

0

にインストールされているすべての拡張機能/プラグインを持っていない私は、理由を見つけましたこの動作は、 フォームにパスワードを設定してからChromeにパスワードを保存させることができます。ページにパスワードを入力していない場合にのみ、クロムはその入力にイベントハンドラが添付されていればすべてのイベントを呼び出します。

クロムプロジェクトにバグ

https://bugs.chromium.org/p/chromium/issues/detail?id=797530

関連する問題