标签: onerror

如何判断<script>标记是否加载失败

我正在动态地向<script>页面添加标签<head>,我希望能够以某种方式判断加载是否失败 - 404,加载脚本中的脚本错误等等.

在Firefox中,这有效:

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

但是,这在IE或Safari中不起作用.

有没有人知道如何在Firefox以外的浏览器中使用它?

(我不认为需要在.js文件中放置特殊代码的解决方案是一个很好的解决方案.它不够优雅且不灵活.)

javascript script-tag onerror

103
推荐指数
8
解决办法
12万
查看次数

检测何时无法在Javascript中加载图像

有没有办法确定图像路径是否会导致实际图像,即检测到图像无法在Javascript中加载.

对于Web应用程序,我正在解析xml文件并从图像路径列表中动态创建HTML图像.服务器上可能不再存在某些映像路径,因此我希望通过检测哪些映像无法加载并删除该HTML img元素来优雅地失败.

注意JQuery解决方案无法使用(老板不想使用JQuery,是的,我知道不要让我开始).我知道在JQuery中检测图像何时加载的方法,但不知道它是否失败.

我的代码创建img元素,但我如何检测img路径是否导致无法加载图像?

var imgObj = new Image();  // document.createElement("img");
imgObj.src = src;
Run Code Online (Sandbox Code Playgroud)

javascript onerror imagesource image-loading

88
推荐指数
6
解决办法
8万
查看次数

使用window.onerror获取实际的Javascript Error对象

Javascript有这个很棒的回调window.onerror.跟踪任何错误都非常方便.但是,它调用错误名称,文件名和行.它肯定没有从try...catch语句中获取实际的错误对象那么丰富.实际的错误对象包含更多的数据,所以我试图得到它.不幸的是,try...catch当你开始使用异步代码时,语句不能正常工作.

有没有办法结合并获得两全其美?我最初寻找一种方法来获取块中触发的最后一个错误onerror,但看起来JS不存储它.

任何线索?

javascript error-handling onerror

46
推荐指数
3
解决办法
2万
查看次数

RxJava:尝试将错误传播到Observer.onError时发生错误

我在Rx库中收到IllegalStateException错误,并且不知道问题根源的确切位置,无论是RxJava还是我可能做错了.

证书锁定(发生在所有服务器请求上)但似乎指向会话超时或注销并重新登录时发生致命崩溃.Repro步骤(大约25%的时间发生)如下:登录,打开列表项 - 滚动一路结束 - 注销 - 重新登录 - 打开应用程序 - 关闭应用程序 - >崩溃!

任何人对如何防止这种情况有任何想法?我发现Observer.onError类似的问题在不一致的情况下触发

java.lang.IllegalStateException: Fatal Exception thrown on Scheduler.Worker thread.
   at rx.internal.schedulers.ScheduledAction.run(ScheduledAction.java:62)
   at android.os.Handler.handleCallback(Handler.java:615)
   at android.os.Handler.dispatchMessage(Handler.java:92)
   at android.os.Looper.loop(Looper.java:137)
   at android.app.ActivityThread.main(ActivityThread.java:4867)
   at java.lang.reflect.Method.invokeNative(Method.java)
   at java.lang.reflect.Method.invoke(Method.java:511)
   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1007)
   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:774)
   at dalvik.system.NativeStart.main(NativeStart.java)
Caused by: rx.exceptions.OnErrorFailedException: Error occurred when trying to propagate error to Observer.onError
   at rx.observers.SafeSubscriber._onError(SafeSubscriber.java:201)
   at rx.observers.SafeSubscriber.onError(SafeSubscriber.java:111)
   at rx.internal.operators.OperatorObserveOn$ObserveOnSubscriber$2.call(OperatorObserveOn.java:159)
   at rx.internal.schedulers.ScheduledAction.run(ScheduledAction.java:55)
   at android.os.Handler.handleCallback(Handler.java:615)
   at android.os.Handler.dispatchMessage(Handler.java:92)
   at android.os.Looper.loop(Looper.java:137)
   at android.app.ActivityThread.main(ActivityThread.java:4867)
   at java.lang.reflect.Method.invokeNative(Method.java)
   at java.lang.reflect.Method.invoke(Method.java:511)
   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1007)
   at …
Run Code Online (Sandbox Code Playgroud)

android exception onerror rx-java rx-android

37
推荐指数
2
解决办法
2万
查看次数

window.onerror无法在chrome中工作

我想在我的网站上添加一个onerror事件.

window.onerror = function() {
    alert("an error");
}
Run Code Online (Sandbox Code Playgroud)

但我得到的只是:

notThere();
ReferenceError: notThere is not defined
Run Code Online (Sandbox Code Playgroud)

我错过了什么?

浏览器:Chrome 26.0.1410.64米

重现步骤:

  • 将代码添加到控制台.
  • 将notThere()添加到控制台

google-chrome window onerror

35
推荐指数
3
解决办法
2万
查看次数

如何使用img元素的onerror属性

CSS:

.posting-logo-div {  }
.posting-logo-img { height:120px; width:120px; }
.posting-photo-div { height:5px;width:5px;position:relative;top:-140px;left:648px; }
.posting-photo-img { height:240px; width:240px; }
Run Code Online (Sandbox Code Playgroud)

HTML:

<div id="image" class="posting-logo-div"><img src="../images/some-logo1.jpg" onerror="this.src='../images/no-logo-120.jpg';" class="posting-logo-img"></div>
<div id="photo" class="posting-photo-div"><img src="../images/some-logo2.jpg" onerror="this.src='../images/no-logo-240.jpg';" class="posting-photo-img"></div>
Run Code Online (Sandbox Code Playgroud)

这在Chrome或Mozilla中似乎不起作用,但在IE中可以使用.

html css image onerror

33
推荐指数
1
解决办法
9万
查看次数

使用背景的onerror事件:url()

如果找不到源图像,有没有办法显示替代图像?我知道要通过以下方式完成此任务:

<img src="imagenotfound.gif" alt="Image not found" onError="this.src='imagefound.gif';" />
Run Code Online (Sandbox Code Playgroud)

但是,如果你正在做这样的事情怎么样,如果有错误或者如果没有找到图像你怎么能抓住?

<div style="background:url('myimage.gif')"></div>
Run Code Online (Sandbox Code Playgroud)

html css background image onerror

29
推荐指数
2
解决办法
2万
查看次数

什么html标签支持onload/onerror javascript事件属性?

我熟悉它的典型用法onload,如下所示:

<body onload="alert('Hello, World!');">
...
</body>
Run Code Online (Sandbox Code Playgroud)

触发加载事件的所有html元素是什么?(从而执行onload属性中提供的javascript)

例如,img是一个这样的标记,它将在加载onload时执行属性中提供的javascript some.png:

<img onload="someImgLoaded()" src="some.png" />
Run Code Online (Sandbox Code Playgroud)

html javascript html5 onload onerror

21
推荐指数
2
解决办法
2万
查看次数

window.onerror没有在Firefox中触发

我正在尝试创建一个javascript错误日志记录基础结构.

我试图设置window.onerror为我的错误处理程序.它适用于IE 6,但是当我在Firefox中运行它时,它会遇到一些冲突的onerror方法.

var debug = true;

MySite.Namespace.ErrorLogger.prototype = {

   //My error handling function.  
   //If it's not in debug mode, I should get an alert telling me the error.
   //If it is, give a different alert, and let the browser handle the error.
   onError: function(msg, url, lineNo) {
        alert('onError: ' + msg);
        if (!debug) {
            alert('not debug mode');
            return true;
        }
        else {
            alert(msg);
            return false;
        }
    }
}

//Document ready handler (jQuery shorthand)
$(function() { …
Run Code Online (Sandbox Code Playgroud)

javascript firefox jquery onerror

17
推荐指数
2
解决办法
2万
查看次数

Chrome会截断错误消息,并在window.onerror中添加"<ignored>"

我们使用window.onerror来捕获未处理的异常(为开发团队记录它们,并显示友好的用户警报).最近我们注意到,在谷歌浏览器中,如果错误消息超过一定长度就会被截断,并且文本" ...<omitted>..."被神秘地添加到错误消息中.

以下代码将演示此功能(在Chrome版本33.0.1750中).我想知道是否有其他人有这个问题?

<html>
    <head>
        <script type="text/javascript">

        window.onerror = function (errorMsg, url, lineNumber) {
            alert('Error: ' + errorMsg);
        }

        var throwError = function () {
            throw new Error(
            'Something went wrong. Something went wrong. Something went wrong. Something went wrong. ' +
            'Something went wrong. Something went wrong. Something went wrong. Something went wrong. ' + 
            'Something went wrong. Something went wrong. Something went wrong. Something went wrong. ' + 
            'Some text gets truncated before this point!');
        }

        </script> …
Run Code Online (Sandbox Code Playgroud)

javascript google-chrome onerror

15
推荐指数
1
解决办法
5427
查看次数