Chrome truncates error messages and adds "<omitted>" in window.onerror Chrome truncates error messages and adds "<omitted>" in window.onerror google-chrome google-chrome

Chrome truncates error messages and adds "<omitted>" in window.onerror


I found a solution that works well.

Chrome implements the new HTML standard, in which 2 new parameters have been added to the onerror handler, namely: the colNumber, and the error object (including stack trace).

See:

The full error message can be accessed through error.message as per my code sample below. This is a duplicate of the 1st parameter message, it seems like Chrome has decided to truncate message. Not sure why they had to break something that was working... :-(

IE and FireFox (as of my current versions: 11.0.9600 & 26.0) are not yet implementing the new 5-parameter standard, so the code makes allowance for that.

Hope this helps someone!

Code sample to return full error message:

<html><head>    <script type="text/javascript">    //Chrome passes the error object (5th param) which we must use since it now truncates the Msg (1st param).    window.onerror = function (errorMsg, url, lineNumber, columnNumber, errorObject) {        var errMsg;        //check the errorObject as IE and FF don't pass it through (yet)        if (errorObject && errorObject !== undefined) {                errMsg = errorObject.message;            }            else {                errMsg = errorMsg;            }        alert('Error: ' + errMsg);    }    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. ' +         'Text does not get truncated! :-)');    }    </script></head><body>    <h1>Hello World</h1>    <input type="button" onclick="throwError()" value="Throw uncaught error!" /><br /><br /></body>


This is a known problem in Chrome and has already been noticed by other people: https://github.com/angular/angular.js/issues/5568.

I don't think there is a workaround, but the bug is already reported: http://crbug.com/331971