ドキュメント内の特定の要素のクリックを処理するコードを複数のページに挿入したいと考えています。jQuery経由でこれを行うことに成功しました。
問題は、jQuery がすべてのページで使用できるわけではないことです。したがって、半分の時間しか機能しません。クリックしたhref
すべての属性を確認したい。<a>
これを行う方法を知っている人はいますか?
ドキュメント内の特定の要素のクリックを処理するコードを複数のページに挿入したいと考えています。jQuery経由でこれを行うことに成功しました。
問題は、jQuery がすべてのページで使用できるわけではないことです。したがって、半分の時間しか機能しません。クリックしたhref
すべての属性を確認したい。<a>
これを行う方法を知っている人はいますか?
ドキュメントにイベント リスナーを追加する必要があります。これは、実際には jQuery が行っていたことです。
イベントリスナーの追加に関する MDN ドキュメントを確認してください。
https://developer.mozilla.org/en-US/docs/DOM/element.addEventListener
結果は次のようになります。
document.addEventListener('click', yourFunction, false);
これは、IE9+ および他のすべてのブラウザーで機能します。IE8 以下をサポートするには、代わりに attachEvent を使用します。
if (document.addEventListener) {
document.addEventListener('click', yourFunction, false);
}
else if (document.attachEvent) {
document.attachEvent('click', yourFunction, false);
}
関数には、クリックされたノードである「ターゲット」と呼ばれるプロパティを持つイベント オブジェクトが渡されます。これについては、MDN でも詳しく読むことができます。
https://developer.mozilla.org/en-US/docs/DOM/event
繰り返しますが、これは IE9+ および標準ブラウザーのみです。IE7 と IE8 では、イベント オブジェクトは window オブジェクトのプロパティです...しかし、Google で調べても結果が得られない場合は、別の質問の対象になります。
これは基本的に、jQuery が舞台裏で行っていることです。jQuery のソース コードを読むと、このような非常に多くのトリックを学ぶことができると思います。
jQueryをページに挿入して、通常どおり続行できます。
これは、ブラウザのJSコンソールを介して行います。
var script = document.createElement('script');
script.src = 'https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js';
document.head.appendChild(script);
jquery は、「プレーンな」javascript では自分でできないことは何もしません。を簡単に実行しdocument.getElementsByName('a')
、結果をループして、オンクリック ハンドラーをアタッチできます。
すべてのリンクに EventListener を添付し、jQuery を使用せずにクリックで href を取得するには、おそらく次のようにします。
function trackClick(event) {
alert(this.href);
}
window.onload = function() {
var links = document.getElementsByTagName('a');
for (var i = 0; i < links.length; i++) {
links[i].addEventListener('click', trackClick, false);
};
}