ホームページに検索テキストボックス付きのフォームがあります。入力をクリックして、ページがまだ読み込まれているときに入力を開始すると、何かがフォーカスを奪うため、入力テキストボックスをもう一度クリックする必要があります。
これを防ぐ方法はありますか?フォーカスを盗んでいるものを見つける必要がありますか?
スクリプトの 1 つが、負荷に重点を置くように何かを設定しているようです。
これを HTML の一番下の の直前に配置します</body>
。コンソールには、フォーカスを得ているアイテムの HTML が表示されます。
<script>
$(window).load(function() { // NB not document ready
console.log($(':focus')[0]);
// alert($(':focus')[0]); // if you don't know what console is
});
</script>
うまくいけば、スクリプトを検索できる要素に ID があるか、ロードに集中するように指示されているものを見つけるのに十分な手がかりがあるでしょう。次に、その行を削除/変更できます。
補遺
これが犯人であることが判明
$('#f input#livesearch').clearableTextField();
そのクリア可能な機能は、ユーザーがそのフィールドを使用する場合にのみ必要になるため、コンテキストに応じたものにしましょう。つまり、フォーカスが与えられた場合にのみ、その機能を使用できるようにします。これにより、いたずらなプラグインがフォーカスを盗むのを防ぐことができます。
$('#f input#livesearch').on('focus', function(){
$(this).clearableTextField();
});
一般的には、文脈に応じて記述するのが最善です。オンロード時に多数のバインドと「ライブ」イベントが設定されているページが見つかりますが、それらはめったに使用されません。ユーザーが何かを行うまで、またはユーザーが何かをしようとしていることをあなたが伝えるまで、それが発生する必要がない場合は、そのように記述します。