javascript - 带有无效 PDF 源的嵌入标签不会触发错误
问题描述
我有一个非常简单的网站,其中包含一个加载 PDF 的嵌入元素。如果 PDF 的来源无效,我想向用户显示错误消息。
<embed src="test.pdf" onerror="showError('pdf')" type="application/pdf">
<img src="test.png" onerror="showError('img')" alt="">
<script>
function showError(file) {
console.log('failed to load ' + file);
}
</script>
test.pdf
在上面的例子中,两个来源test.png
都不存在。结果,在控制台中,我按预期收到了两个 404 错误。但我只从丢失的图像中获得 1 个控制台日志记录。似乎标签onerror
上的事件永远不会触发。<embed>
我还尝试将事件侦听器手动附加到embed
标签,甚至将全局侦听器附加到window
. 当 PDF 源无效时,两者都不会触发。
所有这些都在 Chrome 浏览器(Chromium 80)中进行了测试。
有没有办法onerror
在无效的情况下监听事件src
而不必先发出单独的http请求来查看源是否返回错误?
解决方案
onerror 仅支持以下标签。
<img> <input type="image"> <object> <link> <script>
我想这就是函数没有在嵌入标签上触发的原因。
请参阅此链接以进行进一步查询https://www.w3schools.com/tags/ev_onerror.asp
推荐阅读
- laravel - 如何在 laravel 5 及更高版本中为用户活动跟踪日期创建自定义访问日志?
- java - Java 应用程序启动突然异常缓慢
- reactjs - 在 setState(气泡运动)之后,Highchart 未更新
- java - 如何理解 Java Timer `scheduleAtFixedRate` 方法的`catch up` 和 `schedule` 方法的实际运行时间?
- java - 在 Serializable 类的构造函数中定义对象
- appium - driver.navigate.back() 在 iOS v12 中不起作用
- bash - 如何从字符串评估日期
- python-3.x - 在 python 3 中更改硬编码值
- python - 字典未根据完整字典更新,但仅更新最终元素
- html - 如何垂直居中左侧的徽标和标题右侧的导航?