2017-08-10 119 views
4

中使用onerror()屬性有沒有什麼方法可以在<amp-img>中使用onerror屬性?有沒有什麼辦法在<amp-img>

它在html中工作良好。

<img src="../images/some-logo1.jpg" onerror="this.src='../images/no-img.jpg';" class="posting-logo-img"> 

但放HTML將創建裏面放-IMG

<amp-img src="/img/amp.jpg" alt="AMP" class="posting-logo-img" onerror="this.src='../images/no-img.jpg';" > 
    <noscript> 
    <img src="/img/amp.jpg" alt="AMP"> 
    </noscript> 
</amp-img> 
+1

號從文檔:'屬性開始與上(如onclick或的onmouseover)名稱在AMP HTML是不允許'。 https://www.ampproject.org/docs/reference/spec#html-attributes。說實話,這是一件好事。無論如何,'on *'事件屬性都非常過時,不應該使用。將一個不引人注意的事件處理程序掛在元素上 - 大概是這樣渲染出一個標準的''元素? –

回答

6

我們不能amp-img使用onerror屬性,但是,放提供Offline Fallback功能,而無需onerror img標籤。

amp-img支持AMP的常用屬性,這意味着您可以在無法加載圖像的情況下顯示回退。這對於爲您的AMP添加離線支持非常有用。

當原始圖像不可用或返回404,這使您在回退格給你的文本輸出:

<style amp-custom> 
    amp-img > div[fallback] { 
    display: flex; 
    align-items: center; 
    justify-content: center; 
    background: #f2f2f2; 
    border: solid 1px #ccc; 
    } 
</style> 

<amp-img src="/img/product-image.jpg" width="300" height="100" layout="responsive" class="m1"> 
    <div fallback>offline</div> 
</amp-img> 

輸出:enter image description here

現在,如果你想顯示任何當原始圖像未找到時,圖像(例如無圖像)代替文本,然後設置背景圖像對於後備格

<style amp-custom>  
    amp-img > div[fallback] { 
    background:url('/img/does-not-exist.jpg') no-repeat; 
    } 
</style> 

<amp-img src="/img/product-image.jpg" width="300" height="100" layout="responsive" class="m1"> 
    <div fallback></div> 
</amp-img> 

輸出:enter image description here

參見公文:Amp Image - Offline Fallback

+1

謝謝@GuRu原始圖像不可用時的工作。 – dom

+0

很高興幫助你@dom – GuRu

+1

您節省了我的時間,非常感謝@GuRu –

相關問題