如何解决如何使用IE6检索元素的当前背景图像值?
| 这有点发疯。我有将当前背景图像从选定元素保存到变量中的代码,然后使用该代码创建img标签。 简而言之,以下各项在我测试过的所有浏览器中都适用,但IE6除外:var bg = $(\'.element_selector\').css(\'background-image\');
IE6的返回值为\'none \',这是不正确的。 (在有人建议尝试使用\'backgroundImage \'而不是\'background-image \'之前,没有骰子。)
关于如何获得该价值的任何想法?
更新:我忘了提到有问题的背景图像是由DD_belatedpnG处理的,现在看来是罪魁祸首-如果我注释掉此修复程序,我将获得我的价值。如果有人临时了解png修复程序后仍如何获取该值,请告诉我。
解决方法
在IE6中进行一些测试后,我能够重现DD_belatedPNG和背景src的问题。
这就是我发现的东西。如果在调用
DD_belatedPNG.fix(\'[selector]\');
之前设置background-image
变量,则将获得所需的结果。如果事后例如在click
事件中进行设置,则将获得\"none\"
的值。
另外,DD_belatedPNG将图像元素添加到包含背景图像的页面(类别为DD_belatedPNG_sizeFinder
),因此您可以1)重复使用,2)复制或3)从该元素中获取src
属性值。
这是我的测试代码:
CSS:
#myElement
{
width: 515px;
height: 341px;
margin: 100px auto;
background: #f00 url(\'http://www.chismbrothers.com/images/woodfloors.png\') no-repeat 0 0;
}
HTML:
<div id=\"myElement\"></div>
<div id=\"test1\"></div>
<div id=\"test2\"></div>
<div id=\"test3\"></div>
<div id=\"test4\"></div>
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);
});
});
,你试过十英镑吗?
您确定元素正确吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。