jQuery には、オブジェクトのフォーカスを設定できる focus() メソッドがあります。1.7 より前のバージョンでは、このメソッドはオブジェクトが無効になっているかどうかに関係なくエラーを報告しません (ただし、無効になっている場合、そのコードはエラーを報告しません)。ただし、バージョン 1.7 では、オブジェクトが無効な状態にある場合、 focus() メソッドが呼び出されるときに例外が直接報告されます:
エラー: コントロールが非表示であるか、有効になっていない、またはフォーカスを受け入れないタイプであるため、コントロールにフォーカスを移動できません。
は次のことを意味します: 非表示または使用できない要素はフォーカスを取得できません。 (特記: IE9 は非常に優れており、この状況を自動的に認識できます。IE9 ではエラーは報告されませんが、IE9 より前のバージョンではすべてハングします。)
提案:
jQuery の最新バージョンを使用する必要がある場合、最も簡単な方法は、xxx.focus() を記述するときに try/catch を追加することです。 {xxx.focus();}catch(e){}