我试图处理从omdbapi.com提取的404图像,但我的代码无效。我循环遍历一个数组来构建一个电影列表。
echo '<a href="'.$oIMDB->getUrl().'" target="_new"><img class="img-responsive img-thumbnail posterImage" onError=\"this.onError=null;this.src='error.png'; this.onclick=null;\" src="https://img.omdbapi.com/?i=' . $user['imdbID'] . '&apikey=secret" height="300"></a>';
当我检查Chrome中的代码时,它看起来像这样:
<img class="img-responsive img-thumbnail posterImage" this.onclick="null;\"" height="300" data-pagespeed-url-hash="282594047" src="https://img.omdbapi.com/?i=tt5898034&apikey=secret" onerror="this.onerror=null;pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);" data-pagespeed-lazy-replaced-functions="1">
首先,我认为问题出在回声中的单引号/双引号,但后来我看到lazyload出现在错误的中间。
lazyload会以某种方式导致问题吗?我没有故意在我的网页上加入lazyload。当包含jQuery时,默认情况下可能会启用它?
非常感谢任何输入!
答案 0 :(得分:0)
printf()
将JavaScript代码添加到项目中并编辑PHP:
function imageError(e){
e.setAttribute("src","error.png");
e.removeAttribute("onError");
e.removeAttribute("onclick");
}
或强>
您可以像这样编辑PHP(不添加自定义JavaScript函数):
echo '<a href="'.$oIMDB->getUrl().'" target="_new"><img class="img-responsive img-thumbnail posterImage" onError="imageError(this)" src="https://img.omdbapi.com/?i=' . $user['imdbID'] . '&apikey=secret" height="300"></a>';