0

ドキュメント内の特定の要素のクリックを処理するコードを複数のページに挿入したいと考えています。jQuery経由でこれを行うことに成功しました。

問題は、jQuery がすべてのページで使用できるわけではないことです。したがって、半分の時間しか機能しません。クリックしたhrefすべての属性を確認したい。<a>これを行う方法を知っている人はいますか?

4

4 に答える 4

3

ドキュメントにイベント リスナーを追加する必要があります。これは、実際には 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 のソース コードを読むと、このような非常に多くのトリックを学ぶことができると思います。

于 2012-08-09T14:21:52.520 に答える
2

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);
于 2012-08-09T14:16:05.893 に答える
1

jquery は、「プレーンな」javascript では自分でできないことは何もしません。を簡単に実行しdocument.getElementsByName('a')、結果をループして、オンクリック ハンドラーをアタッチできます。

于 2012-08-09T14:14:21.637 に答える
0

すべてのリンクに 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);
    };

}
于 2012-08-09T14:22:47.267 に答える