0

ドキュメント内のすべての HTML を解析し、PDF へのリンクがある場合は onClick イベントを追加したいと考えています。

例:

<a href="/files/report.pdf">Report</a>

なります:

<a href="/files/report.pdf" onclick="javascript: _gaq.push(['_trackPageview', '/files/report.pdf']);">Report</a>

次のコードは Chrome/Firefox では機能しますが、IE9 では機能しません。

function AddGaqPush()
    {
        var links = document.getElementsByTagName("a");

        for (var i=0; i < links.length; i++)
        {
            if (links[i].href.indexOf(".pdf") !== -1)
            {
                links[i].setAttribute("onclick", "javascript: _gaq.push(['_trackPageview', '" + links[i].href + "']);");
            }
        }
    }

追加する編集: IE 設定: ブラウザ モード: IE9; ドキュメント モード: IE9 標準

4

3 に答える 3

4

jQueryを使用すると、ブラウザー(特にIE)によって制限されることはありません。

$('a[href~=.pdf]').click(function(e) {
    // your click action
    // e is a jQuery event
    // your <a> element is the variable this
});
于 2013-01-25T00:26:58.307 に答える
3

属性を追加する代わりに、イベント ハンドラーをアタッチします

if (links[i].attachEvent){
    links[i].attachEvent('onclick', tpv);
}
else{
    links[i].addEventListener('click', tpv);
}
function tpv(){
    _gaq.push(['_trackPageview', '" + this.href + "']);
}
于 2013-01-25T00:24:18.007 に答える
2

これを実現するための jQuery ステートメントは次のようになります。

$('a[href*=".pdf"]').click(function(e) {
    _gaq.push(['_trackPageview', $(this).attr('href')]);
});

この質問に対する Nannuo Lei の回答は気に入りましたが、解決策は正確または完全ではなく、その投稿についてコメントするほどの評判はまだありません。

検索する文字列を引用符で囲み、*= セレクターを使用すると、~= セレクターのように空白で区切られた単語だけでなく、より大きな文字列の部分文字列を識別できます。jQuery セレクターの詳細については、https ://api.jquery.com/category/selectors/ を参照してください。

于 2014-11-11T01:08:20.997 に答える