Jquery 如何使用IE6检索元素的当前背景图像值?

Jquery 如何使用IE6检索元素的当前背景图像值?,jquery,internet-explorer-6,dd-belatedpng,Jquery,Internet Explorer 6,Dd Belatedpng,这有点让人发疯。我有一个代码,它将当前背景图像从选定元素保存到一个变量中,然后我使用该变量创建一个img标记 简单地说,除了IE6之外,我测试过的所有浏览器都可以使用以下功能: var bg = $('.element_selector').css('background-image'); IE6的返回值为“无”,这是不正确的。(在任何人建议尝试“背景图像”而不是“背景图像”之前,不要掷骰子。) 有什么办法可以让我得到这个价值吗 更新:我忘了提到有问题的背景图像是由处理的,现在看来是罪魁祸首—

这有点让人发疯。我有一个代码,它将当前背景图像从选定元素保存到一个变量中,然后我使用该变量创建一个img标记

简单地说,除了IE6之外,我测试过的所有浏览器都可以使用以下功能:

var bg = $('.element_selector').css('background-image');
IE6的返回值为“无”,这是不正确的。(在任何人建议尝试“背景图像”而不是“背景图像”之前,不要掷骰子。)

有什么办法可以让我得到这个价值吗

更新:我忘了提到有问题的背景图像是由处理的,现在看来是罪魁祸首——如果我注释掉修复,我得到了我的值。如果有人知道我如何在png修复后仍然获取该值,请告诉我

  • 你试过背景吗
  • 你确定元素是正确的吗
  • 你试过背景吗
  • 你确定元素是正确的吗
    在IE6中进行了一些测试之后,我能够用和背景src重现您的问题

    这是我发现的。如果在调用
    DD_belatedPNG.fix(“[selector]”)之前设置了
    background image
    变量然后您将得到所需的结果。如果您在之后进行设置,例如在
    单击
    事件中,您会得到
    值“无”

    此外,DD_belatedPNG向包含背景图像的页面添加了一个图像元素(类为
    DD_belatedPNG_sizeFinder
    ),因此您可以1)重复使用、2)复制或3)从该元素获取
    src
    属性值

    以下是我的测试代码:

    CSS:

    HTML:

    
    
    jQuery:

    $(document).ready(function() {
        // Works as expected
        var bg = $('#myElement').css('background-image');
        $('#test1').text("pre png fix: " + bg);
    
        DD_belatedPNG.fix('#myElement');
    
        $('#myElement').click(function() {
            var bg = $(this).css('background-image');
            var bgAll = $(this).css('background');
    
            // This yields values of 'none' for bg and 'undefined' for bgAll
            $('#test2').html("post png fix: " + bg + "<br />bg: " + bgAll);
    
            // DD_belatedPNG creates an image element on the page with a class of 
            // 'DD_belatedPNG_sizeFinder' which can be used to get the image src
            $('#test3').html('dd_belatedpng_sizeFinder: ' + $('.DD_belatedPNG_sizeFinder').attr("src"));
    
            // Perhaps reapplying 'zoom' css will reapply the BG values?
            $(this).css({ zoom: 0 }).css({ zoom: 1 });
            // Set values again.
            bg = $(this).css('background-image');
            bgAll = $(this).css('background');
            // No luck...same result as #test2
             $('#test4').html("post png fix: " + bg + "<br />bg: " + bgAll);
        });
    });
    
    $(文档).ready(函数(){
    //工作如期进行
    var bg=$('#myElement').css('background-image');
    $('#test1').text(“png前修复:“+bg”);
    DD_latedpng.fix('myElement');
    $('#myElement')。单击(函数(){
    var bg=$(this.css('background-image');
    var bgAll=$(this.css('background');
    //这将为bg生成“无”值,为bgAll生成“未定义”值
    $('#test2').html(“后png修复:+bg+”
    bg:+bgAll); //DD_belatedPNG在页面上创建一个带有 //“DD_belatedPNG_sizeFinder”,可用于获取图像src $('test3').html('dd#u belatedpng_sizeFinder:'+$('dd#u belatedpng_sizeFinder').attr(“src”); //也许重新应用“缩放”css将重新应用BG值? $(this.css({zoom:0}).css({zoom:1}); //再次设置值。 bg=$(this.css('background-image'); bgAll=$(this.css('background'); //没有运气…结果与测试2相同 $('#test4').html(“png后修复:+bg+”
    bg:+bgAll); }); });
    在IE6中进行了一些测试之后,我能够用和背景src重现您的问题

    这是我发现的。如果在调用
    DD_belatedPNG.fix(“[selector]”)之前设置了
    background image
    变量然后您将得到所需的结果。如果您在之后进行设置,例如在
    单击
    事件中,您会得到
    值“无”

    此外,DD_belatedPNG向包含背景图像的页面添加了一个图像元素(类为
    DD_belatedPNG_sizeFinder
    ),因此您可以1)重复使用、2)复制或3)从该元素获取
    src
    属性值

    以下是我的测试代码:

    CSS:

    HTML:

    
    
    jQuery:

    $(document).ready(function() {
        // Works as expected
        var bg = $('#myElement').css('background-image');
        $('#test1').text("pre png fix: " + bg);
    
        DD_belatedPNG.fix('#myElement');
    
        $('#myElement').click(function() {
            var bg = $(this).css('background-image');
            var bgAll = $(this).css('background');
    
            // This yields values of 'none' for bg and 'undefined' for bgAll
            $('#test2').html("post png fix: " + bg + "<br />bg: " + bgAll);
    
            // DD_belatedPNG creates an image element on the page with a class of 
            // 'DD_belatedPNG_sizeFinder' which can be used to get the image src
            $('#test3').html('dd_belatedpng_sizeFinder: ' + $('.DD_belatedPNG_sizeFinder').attr("src"));
    
            // Perhaps reapplying 'zoom' css will reapply the BG values?
            $(this).css({ zoom: 0 }).css({ zoom: 1 });
            // Set values again.
            bg = $(this).css('background-image');
            bgAll = $(this).css('background');
            // No luck...same result as #test2
             $('#test4').html("post png fix: " + bg + "<br />bg: " + bgAll);
        });
    });
    
    $(文档).ready(函数(){
    //工作如期进行
    var bg=$('#myElement').css('background-image');
    $('#test1').text(“png前修复:“+bg”);
    DD_latedpng.fix('myElement');
    $('#myElement')。单击(函数(){
    var bg=$(this.css('background-image');
    var bgAll=$(this.css('background');
    //这将为bg生成“无”值,为bgAll生成“未定义”值
    $('#test2').html(“后png修复:+bg+”
    bg:+bgAll); //DD_belatedPNG在页面上创建一个带有 //“DD_belatedPNG_sizeFinder”,可用于获取图像src $('test3').html('dd#u belatedpng_sizeFinder:'+$('dd#u belatedpng_sizeFinder').attr(“src”); //也许重新应用“缩放”css将重新应用BG值? $(this.css({zoom:0}).css({zoom:1}); //再次设置值。 bg=$(this.css('background-image'); bgAll=$(this.css('background'); //没有运气…结果与测试2相同 $('#test4').html(“png后修复:+bg+”
    bg:+bgAll); }); });
    你能把你的代码放到JSFIDLE上吗?你能把你的代码放到JSFIDLE上吗?是的,是的。我尝试过的所有其他浏览器(IE7-8、FF、misc webkit)都会返回正确的背景图像值。在IE6中,css('background')返回undefined。我想我刚刚找到了答案。DDL BeldPNG似乎是罪魁祸首,我忽略了它可能是相关的。现在来找出png修复程序隐藏我的数据的位置。:)对,对。我尝试过的所有其他浏览器(IE7-8、FF、misc webkit)都会返回正确的背景图像值。在IE6中,css('background')返回undefined。我想我刚刚找到了答案。DDL BeldPNG似乎是罪魁祸首,我忽略了它可能是相关的。现在来找出png修复程序隐藏我的数据的位置。:)在分配之后将png修复移动到会引起一些心痛,但这是一个实用的解决方案(因为我在该页面上做了很多png修复)。多谢!在分配之后将png修复移动到会引起一些心痛,但这是一个实用的解决方案(因为我在该页面上做了很多png修复)。多谢!
    $(document).ready(function() {
        // Works as expected
        var bg = $('#myElement').css('background-image');
        $('#test1').text("pre png fix: " + bg);
    
        DD_belatedPNG.fix('#myElement');
    
        $('#myElement').click(function() {
            var bg = $(this).css('background-image');
            var bgAll = $(this).css('background');
    
            // This yields values of 'none' for bg and 'undefined' for bgAll
            $('#test2').html("post png fix: " + bg + "<br />bg: " + bgAll);
    
            // DD_belatedPNG creates an image element on the page with a class of 
            // 'DD_belatedPNG_sizeFinder' which can be used to get the image src
            $('#test3').html('dd_belatedpng_sizeFinder: ' + $('.DD_belatedPNG_sizeFinder').attr("src"));
    
            // Perhaps reapplying 'zoom' css will reapply the BG values?
            $(this).css({ zoom: 0 }).css({ zoom: 1 });
            // Set values again.
            bg = $(this).css('background-image');
            bgAll = $(this).css('background');
            // No luck...same result as #test2
             $('#test4').html("post png fix: " + bg + "<br />bg: " + bgAll);
        });
    });