3

これらを IE 7 で動作させようとしていますが、問題があります。次のように、jQueryプラグインをダウンロードしてヘッダーに含めました。

<!--[if lte IE 7]>
<script type="text/javascript" src="<?php bloginfo('template_url'); ?>/js/jquery.pseudo.js"></script>
<![endif]-->

しかし、それはまだ機能していません。

jQuery プラグインのコードは次のとおりです。

(function($){

    var patterns = {
        text: /^['"]?(.+?)["']?$/,
        url: /^url\(["']?(.+?)['"]?\)$/
    };

    function clean(content) {
        if(content && content.length) {
            var text = content.match(patterns.text)[1],
                url = text.match(patterns.url);
            return url ? '<img src="' + url[1] + '" />': text;
        }
    }

    function inject(prop, elem, content) {
        if(prop != 'after') prop = 'before';
        if(content = clean(elem.currentStyle[prop])) {
            $(elem)[prop == 'before' ? 'prepend' : 'append'](
                $(document.createElement('span')).addClass(prop).html(content)
            );
        }
    }

    $.pseudo = function(elem) {
        inject('before', elem);
        inject('after', elem);
        elem.runtimeStyle.behavior = null;
    };

    if(document.createStyleSheet) {
        var o = document.createStyleSheet(null, 0);
        o.addRule('.dummy','display: static;');
        o.cssText = 'html, head, head *, body, *.before, *.after, *.before *, *.after * { behavior: none; } * { behavior: expression($.pseudo(this)); }';
    }

})(jQuery);

WordPress を使用しており、WPはプロトタイプ用に文字を予約しているため、$文字を変更する必要があることに関係があるのではないかと考えましたが、それもうまくいきませんでした。JS エラーは停止しましたが、それでも機能しませんでした。jQuery$

4

2 に答える 2

0

また、 Modernizrは、IE7 や他の多くのブラウザーの:beforeおよび疑似 要素もサポートしています。ドキュメント:afterから:

IE6 以降、Firefox 3.5 以降、Opera 9.6 以降、Safari 2 以降、Chrome をサポートしています。モバイルでは、iOS のモバイル Safari、Android の WebKit ブラウザー、Opera Mobile、Firefox Mobile をサポートしています。さらに多くのテストを行っていますが、Blackberry 6+ をサポートしていると考えています。

于 2012-08-28T19:54:59.127 に答える
0

なぜie7-js (MSIE を標準準拠のブラウザーのように動作させるための JavaScript ライブラリー) を使用しないのですか?

:beforeこれにより、:afterその他多くの問題が修正されます。

于 2012-08-28T19:31:42.857 に答える