防止图像加载错误进入javascript控制台
Prevent image load errors going to the javascript console
例如在javascript 中
var image = new Image();
image.onerror = function(e) {
// handle error my way
}
image.src = "http://bad.location.com/img.jp"
我试过
e.preventDefault()
return false
但是错误仍然被记录到控制台。也许这不是一件坏事,但我正在做的是将文件上传到服务器,然后处理它们并将工件加载到S3。这一切需要很长时间。我在后台这样做,并提前将S3 URL返回到浏览器,并使用一些javascript使用image.onerror回调来ping图像URL,以检测图像是否到达S3。
这一切都有效,但我收到了大量控制台错误。这有点难看。有什么办法吗隐藏这个。
很抱歉,似乎没有办法抑制这个错误,至少在谷歌Chrome中是这样。
另请参阅:检查文件是否存在,但防止控制台中的404错误显示
想分享我刚刚发现的东西。:)四处搜索也无济于事,所以我花了相当长的时间,看起来很值得!确实有一个解决方案(如果您也控制后端)
例如nodejs:
/*
* Custom 404 middleware to handle missing image for certain routes
*/
const path = require ( 'path' );
const fs = require ( 'fs-extra' );
// @root - root folder
// @exclude - exclude folder
module.exports = ( root, exclude ) => ( req, res, next ) => {
if ( req.originalUrl.match ( exclude ) ) {
fs.stat ( path.join ( root, req.originalUrl ), function ( err, stat ) {
if ( err === null ) {
// if file exist call next = fallback to static handler
next ();
} else {
// if file does not exist, return a fake 200 img response
res.writeHead ( 200, {
'Content-Type' : 'image/png',
'Content-Length': 0,
'Cache-Control' : 'public, max-age=0',
'X-Status' : '404'
} );
return res.end ();
}
} );
} else {
next ();
}
};
然后你可以这样称呼它:
let static_path = path.join ( __dirname, 'public' );
app.use ( require ( './middleware/missing-image' ) ( static_path, 'img/path' ) );
app.use ( express.static ( static_path ) );
X-Status只是添加了一个自定义标头,这样您就可以在客户端JS中检测到响应被覆盖。
注意:res.end()也可以用于流式传输回退映像。
相关文章:
- 为什么我能够从javascript控制台发送跨域ajax请求
- 将数组的拼接分配给自身时,Javascript控制台打印不起作用
- 如何使Visual Studio自动清除Javascript控制台
- 只有当Javascript控制台在chrome上打开时,Javascript才能工作
- 打印javascript控制台的堆栈跟踪
- 如何在调试模式停止后查看Visual Studio 2015 Javascript控制台
- 如何:编写漂亮的HTML代码和Javascript控制台
- JavaScript:控制台的意外输出.log('str' + int + int)
- 有没有一种方法可以捕获JavaScript控制台输出,以便我可以在其他地方引用它
- 如何让JavaScript控制台用户输入工作(node.js)
- javascript控制台记录的循环值不正确
- JavaScript 控制台事件处理
- Javascript 控制台.log产生 [object Object] 结果
- JavaScript控制台日志不起作用
- 未捕获的语法错误:意外的令牌实例(使用 Chrome Javascript 控制台)
- 如何在 eclipse console 中显示 javascript 控制台.log
- 使用 Chrome 的 JavaScript 控制台关闭特定网站的所有标签页
- 在我的 chrome 网上商店应用程序中禁用检查元素/JavaScript 控制台
- 对函数变量的 JavaScript 控制台日志输出感到困惑
- Chrome - JavaScript 控制台无法正常工作