【问题标题】:how to get a js png fix to work on ajax calls如何获得 js png 修复以处理 ajax 调用
【发布时间】:2010-11-15 03:57:35
【问题描述】:

我们正在使用 js 进行 png 替换,并且我们还对其中一些元素进行了 ajax 更新。当页面片段更新时,png 修复会丢失,因为 png 修复会遍历 dom 并在文档加载时替换 png bg 图像。有没有办法在 ajax 更新发生时呈现 png 替换,而不仅仅是在 document.onload 上?我们正在使用 jquery。

【问题讨论】:

  • 您使用的是哪种 PNG 修复程序?有好几个。

标签: javascript jquery ajax png


【解决方案1】:

你在使用行为吗?

如果您使用的是 iepngfix.htc,您可以尝试将行为设置为内联

var myEl = document.getElementById('inbound-ajax-element');
myEl.style.behavior = 'url(iepngfix.htc)';

http://www.twinhelix.com/css/iepngfix/demo/

【讨论】:

    【解决方案2】:

    你应该看看这里jQuery IE PNG Fix Plugin

    jQuery(function($) {
        $("img[@src$=png], #image-one, #image-two").pngfix();
    });
    

    您应该在刚刚加载的图像上运行它。

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        【解决方案4】:

        它丢失的原因是 pngfix 不是持续应用的东西,它在页面加载时应用到存在的项目,因此如果您更改其中一个或创建新的 png,则不会应用 pngfix。

        因此,在您创建图像的 javascript 中,您需要通过将 pngfix 应用于该项目来跟进它。

        javascript 的外观取决于您使用的 pngfix 类型。这里还有其他答案提供了添加新图像后应用的示例。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2017-03-20
          • 2016-05-13
          • 2011-03-23
          • 2020-04-12
          • 1970-01-01
          • 2022-01-20
          • 2015-12-02
          • 1970-01-01
          相关资源
          最近更新 更多