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);

我认为这可能与必须将$字符更改为有关,jQuery因为我使用的是 WordPress,而 WP 将$字符保留为原型,但这也不起作用;它停止了 JS 错误,但它仍然没有工作。

4

2 回答 2

0

为什么不使用ie7-js(一个让 MSIE 表现得像符合标准的浏览器的 JavaScript 库)?

它将修复:before:after以及许多其他问题

于 2012-08-28T19:31:42.857 回答
0

Modernizr还支持 IE7 和许多其他浏览器中的:before:afterpsuedo 元素。从文档

我们支持 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 回答