このコードは、各アンカー、ボタン、および入力要素の横に小さな番号付きのタグを作成する必要があります。次に、それらのタグでクリック イベントを設定します。ボタンとアンカー タグのコードは動作し、関連がないため、削除しました。
.focus()
ただし、入力の場合は、カーソルを入力要素に配置し、メソッドを使用して実現する必要があります。
しかし、ログインしている gmail.com に対してコンソールでこれを実行すると、何もしません。コメントされalert()
たステートメントは[Object HTMLSpanElement]
、それが何を意味するにせよ、を返します。行のコメントを外して検索バーに直接document.getElementById
フォーカスすると、機能します。を使用しても機能しないのはなぜですか?this
テストの例としてgmailを使用していますが、この動作はすべてのページで発生し、バグは常に存在します。thisを使用してコンソールでこれをテストするために jQuery を含めることができます。
var n = 1;
$('a,button,input').each(function(){
id = n;
//creates numbered tags next to 'a', 'button' and 'input' elements
var a = $(this).offset();
$('body').append('<span class="numTag" id="' + id + '" style="background:white; border: 1px solid black; font-size: 10pt; position:absolute; z-index:999;">' + id + '</span>');
$('#'+id).css({left: a.left - 25, top: a.top});
switch( this.tagName)
{
case 'A':
break;
case 'BUTTON':
break;
case 'INPUT':
$('#'+id).click(function(){
//alert(this);
this.focus();
//document.getElementById('gbqfq').focus();
});
break;
}
n++;
}
});