Firefoxはリンク上でフォーカスイベントを発生させます(Operaも同様)。フォーカスを得ることを防ぐためにリンクするハンドラをアタッチしようとしましたが、フォーカスを隣の入力フィールドに渡すと、何か変なことが起こりました。 Firefoxはフォーカスイベントを2回発生させますが、Operaではこれを1回だけ行います。 jsイベントのキャプチャとバブルフェーズに何らかの形で結びついているかもしれませんが、どちらのケースでもjQueryイベントobjの2eventPhaseプロパティ(バブル)が原因です。Firefoxフォーカスの奇妙な振る舞い(重複火災)
以下のテストページがあります:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Text1</title>
</head>
<body>
<a href="#" id="click">click</a>
<input type="text" id="to_pass">
<script type="text/javascript">
var i = 1;
document.getElementById('click').onfocus = function() {
console.log(i);
i += 1;
document.getElementById('to_pass').focus();
return false;
}
</script>
</body>
</html>
クリックがコンソールにエコーされ、コールカウントされていないが発生します。この場合
あなたはCDATA内のスクリプトを置くのはなぜ? HTML5はXMLではありません! – ThiefMaster
それは偶然です、ありがとう – user907860