我们使用js进行png替换,我们还对其中一些元素进行了ajax更新。当页面片段更新时,png修复程序会丢失,因为png修复程序遍历dom并在文档加载时替换png bg图像。有没有办法在ajax更新发生时呈现png替换,而不是仅在document.onload上?我们正在使用jquery。
答案 0 :(得分:1)
你在使用行为吗?
如果您使用的是iepngfix.htc,则可以尝试设置内联行为
var myEl = document.getElementById('inbound-ajax-element');
myEl.style.behavior = 'url(iepngfix.htc)';
答案 1 :(得分:1)
jQuery(function($) {
$("img[@src$=png], #image-one, #image-two").pngfix();
});
您应该在刚装入的图像上运行此功能。
答案 2 :(得分:0)
http://abcoder.com/javascript/ie6-png-alpha-transparency-fix-for-dynamically-loaded-images-via-ajax/
上面的链接提供了一个将PNG修复程序附加到图像的onload事件的示例,例如:
new_img.onload = function(){
ti.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + timg_src + "', sizingMethod='scale')";
ti.setAttribute('src', 'blank.gif');}
答案 3 :(得分:0)
它丢失的原因是pngfix不是连续应用的东西,它在页面加载时应用于存在的项目,因此如果你更改其中一个或创建新的png,则不会应用pngfix。
因此,在您创建图像的javascript中,您需要通过将pngfix应用于该项目来进行跟进。
javascript的外观取决于您使用的是哪种pngfix。这里还有其他答案,给出了添加新图像后应用的示例。