2012-03-14 12 views
2

私はjqueryを使用しています。ユーザーがタグ付き/分類済みのコンテンツを見ているかどうかを確認する必要があります。jquery - URLの一部を確認する

URLを確認する必要があります。前に、私は...ユーザーが何であったかのページを参照して

var loc = window.location; 
var pageOne = 'http://design.optimus.com/projects'; 
if(loc == pageOne) { 
//do stuff 
} 

をチェックするためにこのような何かをしていた。しかし、これらのURLは変更されませんので、それは私がチェックするために、彼らは、単一のURLにあった場合は簡単でしたかない。

しかし、新しいURLは、ユーザーが検索するタグによって異なるエンディングを持つことになります。例えば、

http://optidesign.squarespace.com/projects/tag/design 
http://optidesign.squarespace.com/projects/tag/production 
http://optidesign.squarespace.com/projects/tag/animation 

は、だから私は、最初の部分と同様の方法のようなものを使用したいが、私はちょうどURLの先頭をチェックしたい:

http://optidesign.squarespace.com/projects/tag/ 

は、どのように私は約行くのですかこれをする?

+1

あなたは 'tag'「ディレクトリを次の単語をチェックします'? –

+0

はい。 URLに/ tag /がある場合は、関数を実行してください。 – patricko

答えて

4

indexOf方法は、この目的のために使用することができます。

if (location.href.indexOf('http://optidesign.squarespace.com/projects/tag/') === 0) { 
    // Well... 
} 

私はあなたがlocalhostのページをテストすることを想像し、または異なるプロトコルですることができます。次のソリューションは、より便利かもしれません:

if (location.pathname.indexOf('/projects/tag/') === 0) { 
    // Well... 
} 
+0

=== 0はtrueまたはfalseを返すのと同じですか? – patricko

+0

@patricko '=== 0'は[アイデンティティ演算子](http://stackoverflow.com/questions/359494/javascript-vs-does-it-matter-which-equal-operator-i-use)です。両側の値と型が等しい場合は 'true'を返し、そうでない場合は' false'を返します。 –

+0

また、もしあなたに助けがあれば、私は素敵な[プラグイン](http://spyk3lc.blogspot.com/2012/03/jquery-myurl-extension-how-to-get-that.html)を持っています。あなたのサイトにurl **簡単に**すべての呼び出しを行います。作業[fiddle here](http://jsfiddle.net/SpYk3/2ZuTe/)を参照してください。使用方法の例は私の[blog](http://spyk3lc.blogspot.com/2012/03/jquery-myurl-extension-how-to-get-that.html) – SpYk3HH

0

ユーザーがそれがtag次「ディレクトリ」だと仮定すると、上にあるもののページを知りたい場合は、私がお勧めしたい:

if (url.indexOf('tag')) { 
    var temp = url.split('/tag/')[1]; 
    var curPage = temp.substring(0,temp.indexOf('/')); 
    return curPage; 
} 

JS Fiddle demo

1

ページの内容にアクセスできる場合は、スクリプトに渡す変数を追加するだけで、現在表示されているページを示すことができます。

URLが唯一のデータであると仮定すると、indexOfを使用してURLのその部分が存在するかどうかを確認できます。

var loc = window.location.toString(); 
var pageOne = 'http://design.optimus.com/projects/tag/'; 
if(loc.indexOf(pageOne) >= 0) { 
//do stuff 
} 

ドメインを変更したり、HTTPSに切り替える場合の将来を保証されるためには、あなたは、代わりに以下を使用することができます。

var loc = window.location.pathname; 
var pageOne = '/projects/tag/'; 
if(loc.indexOf(pageOne) >= 0) { 
//do stuff 
} 

私はあなたが一緒にプレイすることができますJSFiddle上の例を入れています。

+0

にあります。 URL。 その機能は私のために働いていないようです... – patricko

+0

@patricko - 正しいですが、window.locationにはtoString()が必要です。私は答えを更新しました。 – dazbradbury

0

代わりにwindow.location.pathnameを使用すると、ホスト名(たとえば、stackoverflow.com)が常に同じになります。 したがって、window.location.pathnameはURLの残りの部分を提供します。この例では、あなたを与える:あなたが最初の二つのセグメントをチェックしたい場合は 「/質問/ 9706497/jqueryの - チェックのためのパート・オブ・-URL」

を今、あなたは分割することができます文字列:

window.location.pathname.split("/"); 

あなたを与えるだろう。

["", "questions", "9706497", "jquery-check-for-part-of-a-url"] 

をそして今、あなたは、たとえば、必要なインデックスチェック:

parts = window.location.pathname.split("/"); 
if (parts[1] == "projects") { 
    alert("Projects!!"); 
} 
0

「タグ」の存在する場合だけで確認するには:

if (window.location.match(/tag/)!==null) { 
    //do something 
} 

を任意のURLの最後の部分を削除するには:

var url = window.location.split('/'); 
    url.pop(); 
    url = url.join().replace(/,/g, '/')+'/'; 
関連する問題