Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
<!-- This example is from the book _JavaScript: The Definitive Guide_. -->
<!-- Written by David Flanagan. Copyright (c) 1996 O'Reilly & Associates. -->
<!-- This example is provided WITHOUT WARRANTY either expressed or implied.-->
<!-- You may study, use, modify, and distribute it for any purpose. -->
<script>
// a variable we use to ensure that each error window we create is unique
var error_count = 0;
// define the error handler. It generates an HTML form so
// the user can report the error to the author.
function report_error(msg, url, line)
{
var w = window.open("", // URL (none specified)
"error"+error_count++, // name (force it to be unique)
"resizable,status,width=625,height=400"); // features
var d = w.document; // We use this variable to save typing!
// output an HTML document, including a form into the new window
d.write('<DIV align=center>');
d.write('<FONT SIZE=7 FACE="helvetica"><B>');
d.write('OOPS.... A JavaScript Error Has Occurred!');
d.write('</B></FONT><BR><HR SIZE=4 WIDTH="80%">');
d.write('<FORM ACTION="mailto:nobody@nowhere.com" METHOD=post');
d.write(' ENCTYPE="text/plain">');
d.write('<FONT SIZE=3>');
d.write('<I>Click the "Report Error" button to send a bug report.</I><BR>');
d.write('<INPUT TYPE="submit" VALUE="Report Error"> ');
d.write('<INPUT TYPE="button" VALUE="Dismiss" onClick="self.close()">');
d.write('</DIV><DIV align=right>');
d.write('<BR>Your name <I>(optional)</I>: ');
d.write('<INPUT SIZE=42 NAME="name" VALUE="">');
d.write('<BR>Error Message: ');
d.write('<INPUT SIZE=42 NAME="message" VALUE="' + msg + '">');
d.write('<BR>Document: <INPUT SIZE=42 NAME="url" VALUE="' + url + '">');
d.write('<BR>Line Number: <INPUT SIZE=42 NAME="line" VALUE="' + line +'">');
d.write('<BR>Browser Version: ');
d.write('<INPUT SIZE=42 NAME="version" VALUE="'+navigator.userAgent + '">');
d.write('</DIV></FONT>');
d.write('</FORM>');
// Remember to close the document when we're done
d.close();
// Return true from this error handler, so that JavaScript does not
// display its own error dialog.
return true;
}
// Before the event handler can take effect, we have to register it
// for a particular window.
self.onerror = report_error;
</script>
<script>
// The following line of code causes the error that creates the dialog
// box shown in the accompanying figure.
self = null;
</script>