使用picture,source和srcset时如何检查加载了哪个src?(img.src为空)

Don*_*mmy 7 html javascript html5 javascript-events picturefill

我正在使用picture带有source's 的元素来选择要加载的图像.虽然我可以添加一个load监听器,但我无法确定哪个图像被加载,因为img标签的src属性和属性都是空的,即使加载时也是如此!

<picture>
      <source srcset="images/test1.png" media="(min-width: 64em)">
      <source srcset="images/test2.png" media="(max-width: 63.99em)">

      <!-- This will alert an empty string "" -->
      <img srcset="images/test.png" alt="" onload="alert( this.src );">
</picture>
Run Code Online (Sandbox Code Playgroud)

如何确定加载了哪个图像?

Don*_*mmy 13

在实现此功能的现代浏览器中,似乎有一个新属性:currentSrc.在image.onload中,您可以检查这一点.在旧版浏览器中,它将使用src.

img.onload = function()
{
    //Old browser
    if ( typeof img.currentSrc === "undefined" ) console.log( img.src );

    //Modern browser
    else console.log( img.currentSrc );
}
Run Code Online (Sandbox Code Playgroud)

  • 只是`img.currentSrc || img.src` 会很好地解决这个问题 (3认同)