标签: onerror

如何检测文件的脚本加载://在Firefox中URL失败?

我想检测脚本标记(动态创建并添加到DOM)是否无法加载.onerror事件有效,但Firefox中的file:// URL除外.

不幸的是没有任何的技术在这里描述的(除了超时,这是我不能接受的情况下),似乎在Firefox中工作,如果脚本标签的src是一个文件:// URL(或相对URL和页面被通过文件加载: //网址)

测试用例:

var script = document.createElement('script');
script.setAttribute('type', 'text/javascript');
script.setAttribute('src', 'doesnotexist.js');
script.onerror = function() { alert("Loading failed!"); }
document.getElementsByTagName('head')[0].appendChild(script);
Run Code Online (Sandbox Code Playgroud)

将其加载到带有file:// URL的HTML页面中.onerror事件不会在Firefox中执行.从网络服务器或Safari或Chrome加载,它会.

这对我来说似乎是个错误.有没有任何已知的方法呢?

javascript firefox onerror

6
推荐指数
1
解决办法
1994
查看次数

Application_Error不会触发?

在Webform1.aspx.cs中:

protected void Page_Load(object sender, EventArgs e)
{
    throw new Exception("test exception");
}
Run Code Online (Sandbox Code Playgroud)

在Global.asax.cs中:

protected void Application_Error(object sender, EventArgs e)
{
    // Code that runs when an unhandled error occurs
    if (Server.GetLastError() is HttpUnhandledException)
        Server.Transfer("ErrUnknown.aspx");
}
Run Code Online (Sandbox Code Playgroud)

但是从不调用Application_Error事件处理程序.相反,我得到一个运行时错误页面.

在抛出异常后,我需要做什么才能调用Application_Error?

.net asp.net onerror global-asax

6
推荐指数
1
解决办法
4910
查看次数

在非200响应的情况下,javascript图像onError

我必须计算图像加载时间.onLoadHandler对此负责.

<img onError="onErrorHandler(this);" onLoad="onLoadHandler(this);" alt="" border='0' width='1' height='1'   src='http://exmaple.com/02.jpg'/>
Run Code Online (Sandbox Code Playgroud)

如果图像是具有200个服务器响应的普通文件,则它工作正常.

但是合作伙伴提供了302个重定向链,并且onError会在第一次重定向时触发.所以我永远不会真正加载图像时间.

有一些解决方法吗?

谢谢

javascript handler onload onerror http-status-code-302

6
推荐指数
1
解决办法
1373
查看次数

从错误中恢复

在我因为尝试如此鲁莽的事情而大喊大叫之前,让我告诉你,我不会在现实生活中这样做,这是一个学术问题.

假设我正在编写一个库,我希望我的对象能够根据需要编写方法.

例如,如果你想调用一个.slice()方法,而我没有一个方法,那么window.onerror处理程序会为我启动它

无论如何,我在这里玩这个

window.onerror = function(e) {
    var method = /'(.*)'$/.exec(e)[1];
    console.log(method); // slice
    return Array.prototype[method].call(this, arguments); // not even almost gonna work 
};

var myLib = function(a, b, c) {
    if (this == window) return new myLib(a, b, c);
    this[1] = a; this[2] = b; this[3] = c;
    return this;
};

var obj = myLib(1,2,3);

console.log(obj.slice(1));
Run Code Online (Sandbox Code Playgroud)

另外(也许我应该开始一个新问题)我可以更改我的构造函数以获取未指定数量的args吗?

var myLib = function(a, b, c) {
    if (this == window) return new myLib.apply(/* what …
Run Code Online (Sandbox Code Playgroud)

javascript error-handling constructor onerror

6
推荐指数
1
解决办法
284
查看次数

onerror <img>标签属性总是在IE中触发,为什么?

我有这样的代码

<a class="img" href="LINK">
  <img src="GOOD_IMG" title="title" onerror="src='ERROR_IMG'">
</a>
Run Code Online (Sandbox Code Playgroud)

在FireFox和chrome中,它的行为与您期望的一样(如果存在则显示GOOD_IMG,如果不存在则显示ERROR_IMG)但在IE(9)中它始终显示ERROR_IMG.

如果我在IE中调试并在运行中设置onerror其他东西,例如

onerror="alert('error')" 
Run Code Online (Sandbox Code Playgroud)

然后会出现警告消息并显示正确的图像.

什么可能导致IE导致onerror激活其他浏览器没有问题的地方?

有什么事我能找到导致什么的onerror吗?

谢谢

javascript internet-explorer image onerror

6
推荐指数
1
解决办法
3480
查看次数

可以从$ window.onerror中捕获Angular应用程序中的JavaScript错误

在我的app.module().run()中,我设置了一条onerror消息,以便在遇到javascript错误时弹出toastr消息.

我希望这可以在我的整个ngApp中工作.那可能吗?

以下代码弹出一个toast,因为asdf是无效的JavaScript.

angular.module("app").run(['notificationFactory', '$window',
    function (notificationFactory, $window) {
    $window.onerror = function (errorMsg, url, lineNumber) {
        notificationFactory.error(errorMsg);
   };

   asdf
}]);
Run Code Online (Sandbox Code Playgroud)

但是如果我将'asdf'放入控制器,$ window.onerror就不会触发.

是否有可能通过全球性的误差调用来捕获这个?

App.run在我的app.js文件中,并在我的控制器之前加载.

在我的控制器中,我似乎无法获得$ window.onerror工作.我尝试将onerror函数移动到控制器.我还试图看看img标签是否会产生错误无济于事.

<img ng-src="someFileThatDoesntExist.png" />
Run Code Online (Sandbox Code Playgroud)

javascript onerror angularjs

6
推荐指数
1
解决办法
6338
查看次数

VBA:On Error Resume Next工作多长时间了?

我正在阅读如何使用On Error Resume Next,我正在试图找出该行将适用于该程序的时间.在Microsoft站点上,我发现这句话:"An On Error Resume Next语句在调用另一个过程时变为非活动状态." 这到底是什么意思?什么被认为是一个程序?

我问,因为我在我的程序中使用了这行,但是我不希望它出现Resume Next所有发生的运行时错误,只是下一行中的明显错误.


代码:Dim zRange As Range

Dim zRange As Range

Call FilterTableFor(fieldNameColumn, Array("baseunitprice", "burden", "MTLBURRATE", "PurPoint", "Vendornum"))

On Error Resume Next
Set zRange = commentsColumnRange.SpecialCells(xlCellTypeVisible)
zRange.Formula = "target"

Call FilterTableFor(fieldNameColumn)
Run Code Online (Sandbox Code Playgroud)

我也发现(并且已知有一段时间)On Error或者GoTo行被认为是编码不好.有没有Try-Catch我可以用于这样的线?

我在想这样的事情:

Dim zRange As Range

Call FilterTableFor(fieldNameColumn, Array("baseunitprice", "burden", "MTLBURRATE", "PurPoint", "Vendornum"))

Try
Set zRange = commentsColumnRange.SpecialCells(xlCellTypeVisible)
zRange.Formula = "target"
Catch()

Call FilterTableFor(fieldNameColumn)
Run Code Online (Sandbox Code Playgroud)

我甚至没有做任何事情,因为我觉得不需要.

谢谢你的时间.

vba try-catch onerror

6
推荐指数
2
解决办法
8631
查看次数

Javascript onload和脚本回调函数,哪个优先?

我正在加载一个使用回调函数的外部脚本,它返回一些特定的数据.如果未收到此数据,则应显示错误.

这是我做的代码:

<script>
//setting initial state so that function will only work once
var visitors_loaded=false;  
var my_callback = function( data ) {
    if (visitors_loaded) return 0;
    if (data) { 
        //success: callback function is called and it has a proper data
    visitors_loaded=true;
    alert(JSON.stringify(data));
    }
    else alert ('error'); //something went wrong
};
</script>
<script onload="my_callback(null)" onerror="my_callback(null)"
src="https://api.clicky.com/api/stats/4?site_id=32020&sitekey=9a19b1a4d1171193&type=visitors&date=this-month&output=json&json_callback=my_callback"></script>
Run Code Online (Sandbox Code Playgroud)

正如你所看到的......很多东西可能会出错,所以我自然会添加一个onerror事件.如果您将脚本的主机名或域更改为不存在的内容,则会发生此错误事件.

但是,如果您只更改脚本的URL,它仍然可以连接到服务器并激活onload事件.我的回调函数不会被调用那些无效的请求,所以我也添加了一个onload处理程序.

现在的问题是,如果所有正常加载并返回数据,它将同时触发回调函数onload.我注意到在onload之前触发了回调函数并设置了visitor_loaded变量,以便只调用一次处理函数.

到目前为止,它在JS小提琴和我的离线网站中完美运行,但我想知道这是否是预期的行为?在onload处理程序之前,json_callback函数是否总是优先?

https://jsfiddle.net/5sfk9ht5/4/

javascript callback onload onerror external-script

6
推荐指数
1
解决办法
6789
查看次数

如何在没有丑陋的instanceof的情况下处理Retrofit Rx onError中的各种错误

我想知道你在改造Rx onError时处理不同类型错误(如http异常,没有互联网连接异常等)的方法,而不使用instanceof像这里提到的那样:如何使用RxJava处理Retrofit 2中的网络错误处理:处理错误在Retrofit 2 RX中

在kotlin中,我将简单地为每种throwable做一些扩展函数来做我想做的事情.

但是我被迫在项目中使用Java.有什么好建议吗?

是构建某种错误处理程序的方法,如下所示:

public interface ErrorHandler {
    void handleError(Exception e);
    void handleError(HttpException e);
    void handleError(NullPointerException npe);

}
Run Code Online (Sandbox Code Playgroud)

好?我知道这不是因为每次我需要处理另一个特定的错误我被迫改变界面,所以它违反了Open Close Principle.但我无法找出任何解决方案.

欢呼Wojtek

android onerror rx-java retrofit2

6
推荐指数
1
解决办法
604
查看次数

React中img标记中的onError

我想用react中的默认图像替换断开的链接.我通常会使用onerror,但它没有按预期工作.具体来说,我得到了"在现有状态转换期间无法更新(例如在内部render)"的重复错误.最终,出现默认图像,但需要很长时间(此错误的许多打印).这是一个非常类似的问题:react.js替换img src onerror.我尝试了这个解决方案(第一个,不使用jQuery),但它导致了所描述的错误.我猜onError必须不断被触发,从而导致不断重新渲染.任何替代解决方案/修复?

   import React from 'react';
import { connect } from 'react-redux';
//import AddImageModal from '../components/AddImageModal.js';
import Button from 'react-bootstrap/lib/Button';
//import { getPostsByUserId } from 'actions'
import Posts from '../components/Posts.js';
var Modal = require('react-modal');
require('../../styles/AddImageModal.scss');
import { save_post } from '../actions';

 const customStyles = {
  content : {
    top                   : '50%',
    left                  : '50%',
    right                 : 'auto',
    bottom                : 'auto',
    marginRight           : '-50%',
    transform             : 'translate(-50%, -50%)'
  }
};

var MyWallScreen = React.createClass({

  getInitialState: function() …
Run Code Online (Sandbox Code Playgroud)

html image onerror reactjs

6
推荐指数
2
解决办法
4587
查看次数