这是我的简单脚本,
<script>
window.onerror = err;
var script = document.createElement('script');
script.src = "192.186.1.1.1.1.1";
script.onerror = err;
document.body.appendChild(script);
function err(msg, loc, a, b) {
alert(msg + "/" + loc);
}
</script>
但是当我加载这个时,我得到了,
[object Event]/undefined
当我在“firebug”上运行相同的内容时,我收到详细的错误,例如,
NetworkError: 404 Not Found - http://localhost/XSS/192.186.1.1.1.1.1"
那么我怎样才能获得详细的错误。
try-catch alos 不起作用
try {
var script = document.createElement('script');
script.src = "192.186.1.1.1";
document.body.appendChild(script);
} catch(e) {
alert(e.name);
}
该方法仅适用于旧浏览器吗?
img.src 也不提供火灾错误处理程序。为什么?
var img = new Image();
img.src="gifffff/asasa/ss" ;
最佳答案
Firebug 不是代码,而是代表代理运行的浏览器诊断工具。 (JavaScript无法读取firebug控制台的结果。)
现在,对于案例:
Image.error
事件从未说明加载失败的原因。 HTML 规范中没有规定包含“原因”;问题通过一开始就不是一个功能来解决。catch
不起作用,因为代码没有抛出异常。图像仍然是图像,仍然可以添加到 DOM 无论资源(最终)是否加载失败。
(
src
仍然设置为有效的 URI 组件 - 它会在无效/未知的 URI 方案上引发异常。)
有了这个一般限制(在任何[图像]资源上,即使是同一来源)也可以防止违反同源政策 - 以及恶意攻击的能力运行各种网络扫描攻击的代码。
关于javascript - 当我使用 <script src "NetworkError"> 时,为什么我在 javascript 中没有得到 ="false_ip"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28435960/