1
首先,让我们大家都来看看这个可爱的猫头鹰:img.onerror()似乎不火,如果URL有坏域
http://happy.fm/wp-content/uploads/2011/10/random-owl.jpg
我使用的是作为一个测试图像,看看我能使用客户端Javascript检测给定的URL是否是合法图像。我在网上追捕四周,发现应该工作一些简单的代码:
const img = new Image();
img.onload =() => {
console.log("HOORAY! SUCCESS!", img);
}
img.onerror =() => {
console.log("BOO! FAIL!")
}
img.src = values.image;
如果我把其中有一个有效的域名URL,但是错误的文件路径,如:
http://happy.fm/wp-content/uploads/2011/10/random-owlDOESNOTEXIST.jpg
..然后onerror()
可靠地起火。但是,如果域是假的,是这样的:
http://happy.fmDOESNOTEXIST/wp-content/uploads/2011/10/random-owl.jpg
...然后onerror()
永远不会触发。这是否像预期的行为?有没有办法解决?
是的,我意识到只做客户端验证不是真正处理这个问题的最好方法,而是假装这是唯一的方法。
编辑:值得一提的是,我在Node.js/Webpack本地环境中看到这个错误,它运行在webpack-dev-server之上。也许这会成为某种权限问题。
这是奇怪的行为。你可以使用像这样的东西检查url是否存在,https://stackoverflow.com/questions/10926880/using-javascript-to-detect-whether-the-url-exists-before-display-in-iframe。这足以得到答案吗? –
我似乎无法重现[错误](https://jsfiddle.net/59bhj75r/),因为,onerror似乎正在按预期发射 –
如果你在WordPress中这样做,你可以绑定'site_url()'at开始并得到的图像 –