当我使用 <script src="false_ip"> 时,为什么我在 javascript 中没有得到 "NetworkError"?

why dont i get "NetworkError" in javascript when i use <script src="false_ip">?

这是我的简单脚本,

<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 也不起作用

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 不是代码,而是代表代理的浏览器诊断工具 运行ning。 (JavaScript 无法读取 firebug 控制台的结果。)

现在,对于案例:

  • Image.error 事件从未说明加载失败的原因。没有规定在 HTML 规范中包含 "reason";问题一开始不是一个功能就解决了。

  • catch 不起作用,因为代码没有抛出异常。

    图片仍然是图片,仍然可以添加到 DOM 不管资源是否(最终)加载失败。

    src 仍设置为有效的 URI 组件 - 它会在 invalid/unknown URI 方案上引发异常。)


具有此 general 限制(在任何 [Image] 资源上,即使在同一来源上)also 防止违反 Same-源策略 - 以及恶意代码 运行 各种网络扫描攻击的能力。