2011-08-04 19 views
1

私はビデオのためのフィルタを持っているビデオページを持っています。私はフィルタ(例えば、「ミュージックビデオ」)のいずれかをクリックした場合、このような何かへのURLの変更:CSSやJavaScriptでこのようなURLをどのようにターゲットに設定しますか?

http://mysite.com/videos/?videofilter=music-videos

は残念ながら、身体のクラスを追加または私は簡単に標的にすることができるものはありませんそれこのような何かを行うことによって:

body.music-videos { }

は何とかCSSやJavaScriptを使用してURLをターゲットにする方法はありますか?

答えて

0

Javascriptのlocation.hrefを使用して場所を取得し、通常の文字列のように使用できます。 しかし、クラスを持つために本体をサーバー側にすることをお勧めします。

0

おそらくあなたのページにはそのURLが読み込まれます。ページをレンダリングしてcss-detectableを含むようにしても問題はありませんか?

0

私はあなたの質問を理解しているかどうかわかりません。 href値を持つリンクをターゲットに設定しようとしていますか?あなたはcssのselector [src = URL]のようなものでそれを目標にできるはずです。 bodyタグをURLに基​​づいてターゲット設定しようとしている場合、if(location.href == 'url'){document.getElementsByTagName( "body")などのif文の下に条件付きスクリプトを作成します。style.property = "なんでも" } 。お役に立てれば。

0

私は理解していない...

だから、URLにクエリ文字列を送信する、フィルタオプションをクリックします。私たちは、次のようなクエリ文字列を取得できます。

var qs = []; 
var q = window.location.search.substring(1); 
var p = q.split('&'); 
for(var i = 0; i < p.length; i++) { 
    var pos = p[i].indexOf('='); 
    if(pos > 0) { 
    var key = p[i].substring(0, pos); 
    var val = p[i].substring(pos+1); 
    qs[key] = val; 
    } 
} 

その後、あなたは、単に値を取得するためにqs['videofilter']にアクセスします。そこから、何もしていなければ、フィルタがなくても、チェックボックスがあります。フィルタを使用する唯一の方法は、それらをすべて分類する共通の形式を持つことです。 javascriptとcssでこれを行う場合は、正規表現でそのフィルタを使用して、上記の値と一致する特定のタグを見つけることができます。次に、コンテナの関係(親、祖父母など)を決定します。それをdisplay:none;に設定してください。

他にも意味がある場合は、明確にしてください。

0

このソリューションは、唯一残念なのFirefoxです:

 @-moz-document url(http://www.w3.org/), 
        url-prefix(http://www.w3.org/Style/), 
        domain(mozilla.org) 
    { 
     /* CSS rules here apply to: 
     + The page "http://www.w3.org/". 
     + Any page whose URL begins with "http://www.w3.org/Style/" 
     + Any page whose URL's host is "mozilla.org" or ends with 
      ".mozilla.org" 
     */ 

     /* make the above-mentioned pages really ugly */ 
     body { color: purple; background: yellow; } 
} 
https://developer.mozilla.org/en/CSS/@-moz-documentから
関連する問題