dan*_*jar 8 html javascript jquery events image
我想隐藏动态加载的损坏图像.对于静态的,这是有效的.
$('img').error(function() {
$(this).css({ 'visibility': 'hidden' });
});
Run Code Online (Sandbox Code Playgroud)
但是,当我把它绑定到document
没有任何反应时.控制台中也没有错误.
$(document).on('error', 'img', function() {
$(this).css({ 'visibility': 'hidden' });
});
Run Code Online (Sandbox Code Playgroud)
如何监听动态加载的图像错误?
你可以用它做useCapture
的addEventListener
。
document.addEventListener('error', (e) => {
// do your magic here
}, true)
Run Code Online (Sandbox Code Playgroud)
该error
事件确实不是 泡沫。在2级DOM事件指定它应该,但在DOM Level 3的活动将覆盖此。
您可以尝试,window.onerror
但是我不确定这是否仅捕获代码中的运行时脚本错误或资源失败引发的错误。如果可行,它还将捕获所有错误。
阿伦·P·约翰尼(Arun P Johny)证实了我的怀疑,这window.onerror
是不可行的。
此事件在带live的错误事件中讨论。
一种解决方案是在所有包含动态加载的图像的图像上添加通用错误处理程序。然后让通用错误处理程序触发自定义jQuery事件,例如:
$( document ).on( 'imgerror', function ( event, originalEvent ) {
// originalEvent is the error event
} );
function genericImgOnError( event ) {
$( event.target ).trigger( 'imgerror', event );
}
function getImg( src ) {
return $( '<img/>', {
src: src,
} ).on( 'error', genericImgOnError );
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1906 次 |
最近记录: |