2

ブラウザ固有のCSSをスタイルシートに挿入できる優れたjQueryプラグインがあります。

例:

#foo {width: 100%; border: 12px solid white}
.opera #foo {width: 99%; border: 12px solid red}
.gecko #foo {width: 33%; border: 12px solid blue}

...あなたはアイデアを得る。

質問:

ブラウザ固有のjQueryスニペット、またはブラウザ固有のHTMLを挿入するために使用できる類似のものはありますか?たとえば、(擬似コード):IFオペラ、fadeIn div#opera、IF webkit fateIn div#webkitなど。

たとえば、Opera専用のポップアップや、Webkit専用のポップアップなどを作成する方法を模索しています。

基本的に、私が知る必要があるすべてを学びたいので、特定のブラウザをターゲットにするのに役立つものを投稿してください。クロスブラウザタスクを簡単にするのに役立つプラグインを探しています。古いブラウザについてはあまり心配していません。

アップデート:

これが私が使用しているプラ​​グインです:

function css_browser_selector(u) {
var ua = u.toLowerCase(),
    is = function (t) {
        return ua.indexOf(t) > -1
    }, g = 'gecko',
    w = 'webkit',
    s = 'safari',
    o = 'opera',
    m = 'mobile',
    h = document.documentElement,
    b = [(!(/opera|webtv/i.test(ua)) && /msie\s(\d)/.test(ua)) ? ('ie ie' + RegExp.$1) : is('firefox/2') ? g + ' ff2' : is('firefox/3.5') ? g + ' ff3 ff3_5' : is('firefox/3.6') ? g + ' ff3 ff3_6' : is('firefox/3') ? g + ' ff3' : is('gecko/') ? g : is('opera') ? o + (/version\/(\d+)/.test(ua) ? ' ' + o + RegExp.$1 : (/opera(\s|\/)(\d+)/.test(ua) ? ' ' + o + RegExp.$2 : '')) : is('konqueror') ? 'konqueror' : is('blackberry') ? m + ' blackberry' : is('android') ? m + ' android' : is('chrome') ? w + ' chrome' : is('iron') ? w + ' iron' : is('applewebkit/') ? w + ' ' + s + (/version\/(\d+)/.test(ua) ? ' ' + s + RegExp.$1 : '') : is('mozilla/') ? g : '', is('j2me') ? m + ' j2me' : is('iphone') ? m + ' iphone' : is('ipod') ? m + ' ipod' : is('ipad') ? m + ' ipad' : is('mac') ? 'mac' : is('darwin') ? 'mac' : is('webtv') ? 'webtv' : is('win') ? 'win' + (is('windows nt 6.0') ? ' vista' : '') : is('freebsd') ? 'freebsd' : (is('x11') || is('linux')) ? 'linux' : '', 'js'];
c = b.join(' ');
h.className += ' ' + c;
return c;
};
css_browser_selector(navigator.userAgent);
4

1 に答える 1

0

このプラグインは、いくつかのクラスをhtmlタグに追加するだけのようです。jQueryを使用してそれらをテストするには、次のことができます

$html = $("html"); //cached for performance reasons
...

if( $html.is(".gecko") ){
  ...

. さらに良いことに、プラグインが、直接使用できるいくつかのグローバル (またはグローバル スコープから見える) 変数も設定するかどうかを確認します。その可能性が高いです。

また、ブラウザで何ができるか知りたいときは、ブラウザが何であるかを見ないください。ブラウザー検出ではなく機能検出 (DCoder で指摘されているように、機能を確実に検出できない場合を除く)。そのためにModernizrライブラリを使用できます。

于 2012-11-25T08:56:20.467 に答える