2012-03-13 5 views
0

私はAjaxを使ってすべてのページがロードされているWordpress Webサイトを構築しています。私はhereを見つけることができるクリスコイヤーによって作成されたスクリプトを使用しています。以下のコードは、ウェブサイトのすべてのリンクに特定のタグを追加します。 WordpressはAjaxを使ってこれらのリンクからコンテンツを読み込もうとします。問題は、これらの属性が、ページに読み込まれずにダウンロードされるPDFとZIPファイルへのリンクに適用されていることです。このスクリプトは、ウェブサイト上のすべてのリンクに特定のattrを適用します。 pdfファイルとzipファイルを除外する方法は?

特定のファイル形式からこれらの属性を除外する方法を教えてください。私はすでに$internalLinks = $("a[href^='"+siteURL+"']:not([href$=/*.pdf])")のようなものを試しましたが、それは私にとってはうまくいかなかったのです。私は何か間違っているのですか?

以下は、属性を追加する元のコードの一部です。完全なコードはJSFiddle pageにあります。ありがとう!

var $mainContent = $("#main-content"), 
    siteURL = "http://" + top.location.host.toString(), 
    $el = $("a"); 

function hashizeLinks() { 
    $("a[href^='" + siteURL + "']").each(function() { 
     $el = $(this); 

     // Hack for IE, which seemed to apply the hash tag to the link weird 
     if ($.browser.msie) { 
      $el.attr("href", "#/" + this.pathname).attr("rel", "internal"); 
     } else { 
      $el.attr("href", "#" + this.pathname).attr("rel", "internal"); 
     } 
    }); 
};​ 

答えて

1

。これを使用してください:

$internalLinks = $("a[href^='"+siteURL+"'):not([href$='.pdf'])"); 
+0

新しい私は何かが欠けていた。それがまさに私が探しているものです。ありがとうgilly3! – Klikerko

0

あなたはすべてのマッチのリンクにフィルタを適用することができます:あなたはファイル指定のようなワイルドカードとして*を使用することはできません

var $mainContent = $("#main-content"), 
siteURL = "http://" + top.location.host.toString(), 
$el = $("a"); 

function hashizeLinks() { 
$("a[href^='" + siteURL + "']").filter(function(){ 
     return this.href.match(/[^\.pdf]$/i); 
    }).each(function() { 
    $el = $(this); 

    // Hack for IE, which seemed to apply the hash tag to the link weird 
    if ($.browser.msie) { 
     $el.attr("href", "#/" + this.pathname).attr("rel", "internal"); 
    } else { 
     $el.attr("href", "#" + this.pathname).attr("rel", "internal"); 
    } 
}); 
};​ 
+0

ありがとうございました。あなたの例は素晴らしいですが、単純さのために@ gilly3のソリューションを使用します。 – Klikerko

+0

伝説はそれを単純に保つと言います、それは働き続けるでしょう、私は彼の解決策にも気づくために行くでしょう。 :) – Nathan

関連する問題