2015-10-19 43 views
2

頁面加載時沒有任何圖像顯示在IE11上,而是在我們間歇性地調整瀏覽器大小(1/3加載)時相應刷新它們。我們無法將其與任何其他瀏覽器複製。 srcset可以自動使用靜態內容。最初不會在IE11中顯示的ng-srcset圖像

Here is a Plunker example它不工作在IE11。

或快速和容易的,我們正在使用的實際IMG HTML:

<img data-ng-srcset="{{::image.url}}, {{::image.url2x}}" alt="{{::image.name}}"/> 

的圖像或周圍的div做有應用任何轉換,陰影或透明度。

html呈現良好,正確地傳遞並重寫了srcset屬性。圖像只是不顯示,只有alt標籤。想知道如果這可能是一個調用堆棧的問題,由於它的間歇性,也許是在角度完成一個摘要或其他東西之前與Picturefill加載競爭條件。

提前歡呼!

+1

IE開發的網站說,他們支持IMG srcset只針對IE邊緣,請看這裏:https://dev.modern.ie/platform/status/imgsrcset/ – curiousgeek

+0

對不起,我們也在使用圖片填充,我會更新問題以便更明確。 Picturefill在src中添加了不支持srcset的瀏覽器 –

回答

0

碰到這個作爲一個解決方案:http://tech.endeepak.com/blog/2014/05/03/waiting-for-angularjs-digest-cycle/

var waitForRenderAndDoSomething = function() { 
    if($http.pendingRequests.length > 0) { 
     $timeout(waitForRenderAndDoSomething); // Wait for all templates to be loaded 
    } else { 
     $window.picturefill(); 
    } 
} 

$timeout(waitForRenderAndDoSomething); 

的博客文章介紹了唯一的問題就在這裏,因此,如果任何人有更好的東西,請讓我知道:

的$ HTTP .pendingRequests應該只用於調試目的。如果有角度的團隊決定刪除這個,你可以使用http攔截器來實現這個鏈接。

1

,如果你身邊的一個循環,並在特定情況下(不是您的應用程序的所有圖像),是調用函數使用PictureFill直接推出PictureFill從HTML,最後一個項目加載後的工作(這是不是最好的做法,但解決這個問題IE11):

<picture><!-- Your image --></picture> 
<span ng-if="$last"> 
    {{ controllerAlias.launchPictureFill() }} 
</span>