Window.onerror рдХреЗ рд╕рд╛рде рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░рдирд╛

рд╕рд╛рдордЧреНрд░реА, рдЬрд┐рд╕рдХрд╛ рдЕрдиреБрд╡рд╛рдж рдЖрдЬ рд╣рдо рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, window.onerror рдЙрдкрдпреЛрдЧ рд╕реЗ JS рддреНрд░реБрдЯрд┐рдпреЛрдВ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдкрд┐рдд рд╣реИред рдпрд╣ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдИрд╡реЗрдВрдЯ рд╣реИ рдЬреЛ рдмрд┐рдирд╛ рдХрд┐рд╕реА рддреНрд░реБрдЯрд┐ рдХреЗ рдЙрддреНрдкрдиреНрди рд╣реЛрдиреЗ рдкрд░ рдЪрд╛рд▓реВ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣рд╛рдВ рд╣рдо рдмрд╛рдд рдХрд░реЗрдВрдЧреЗ рдХрд┐ onerror рдЗрд╡реЗрдВрдЯ onerror рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдХреИрд╕реЗ рдкрдХрдбрд╝рд╛ рдЬрд╛рдП, рдФрд░ рд╡реЗрдмрд╕рд╛рдЗрдЯ рдбреЗрд╡рд▓рдкрд░ рдХреЗ рд╕рд░реНрд╡рд░ рдкрд░ рдЙрдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдХреИрд╕реЗ рднреЗрдЬреЗрдВред рддреНрд░реБрдЯрд┐ рдЬрд╛рдирдХрд╛рд░реА рдПрдХрддреНрд░ рдХрд░рдиреЗ рдФрд░ рдЙрд╕рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рд╣реИрдВрдбрд▓рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЖрдкрдХреЗ рдЕрдкрдиреЗ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдЖрдзрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣ рддреНрд░реБрдЯрд┐-рдЙрдиреНрдореБрдЦ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рддрдВрддреНрд░реЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ, рдЬреИрд╕реЗ рд░реИрд╡реЗрди-рдЬреЗрдПрд╕ ред

рдЫрд╡рд┐

Window.onerror рдШрдЯрдирд╛ рдХреЗ рд▓рд┐рдП рд╕реБрди рд░рд╣рд╛ рд╣реИ


рдЖрдк onerror рдЗрд╡реЗрдВрдЯ рдХреЗ рд▓рд┐рдП window.onerror рдлрдВрдХреНрд╢рди рджреЗ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдПрдХ рдПрд░рд░ рд╣реИрдВрдбрд▓рд░ рдХреА рднреВрдорд┐рдХрд╛ рдирд┐рднрд╛рддрд╛ рд╣реИ:

 window.onerror = function(msg, url, lineNo, columnNo, error) { // ...   ... return false; } 

рддреНрд░реБрдЯрд┐ рд╣реЛрдиреЗ рдкрд░ рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ; рдЗрд╕рдХреЗ рд▓рд┐рдП рдирд┐рдореНрди рддрд░реНрдХ рджрд┐рдП рдЧрдП рд╣реИрдВ:

  • msg - рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, Uncaught ReferenceError: foo is not defined ред
  • url - рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдпрд╛ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХрд╛ рдкрддрд╛ рдЬрд┐рд╕рдореЗрдВ рддреНрд░реБрдЯрд┐ рд╣реБрдИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, /dist/app.js ред
  • lineNo - рдкрдВрдХреНрддрд┐ рд╕рдВрдЦреНрдпрд╛ рдЬрд╣рд╛рдБ рддреНрд░реБрдЯрд┐ рд╣реБрдИ (рдпрджрд┐ рд╕рдорд░реНрдерд┐рдд рд╣реИ)ред
  • columnNo - рдкрдВрдХреНрддрд┐ рдХрд╛ рдХреЙрд▓рдо рдирдВрдмрд░ (рдпрджрд┐ рд╕рдорд░реНрдерд┐рдд рд╣реЛ)ред
  • error - error рд╡рд╕реНрддреБ (рдпрджрд┐ рд╕рдорд░реНрдерд┐рдд рд╣реИ)ред

рдкрд╣рд▓реЗ рдЪрд╛рд░ рддрд░реНрдХ рдбреЗрд╡рд▓рдкрд░ рдХреЛ рдмрддрд╛рддреЗ рд╣реИрдВ рдХрд┐ рдХреМрди рд╕реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ, рдХрд┐рд╕ рдкрдВрдХреНрддрд┐ рдореЗрдВ, рдФрд░ рдЗрд╕ рдкрдВрдХреНрддрд┐ рдХреЗ рдХрд┐рд╕ рдХреЙрд▓рдо рдореЗрдВ рддреНрд░реБрдЯрд┐ рд╣реБрдИред рдЕрдВрддрд┐рдо рддрд░реНрдХ, рдкреНрд░рдХрд╛рд░ Error рдХрд╛ рдПрдХ рдЙрджреНрджреЗрд╢реНрдп, рд╕рдВрднрд╡рддрдГ рд╕рднреА рддрд░реНрдХреЛрдВ рдХрд╛ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред рдЪрд▓рд┐рдП рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рддреЗ рд╣реИрдВред

рддреНрд░реБрдЯрд┐ рдСрдмреНрдЬреЗрдХреНрдЯ рдФрд░ Error.prototyp.stack рдЧреБрдг


рдкрд╣рд▓реА рдирдЬрд╝рд░ рдореЗрдВ, Error рдСрдмреНрдЬреЗрдХреНрдЯ рдХреБрдЫ рд╡рд┐рд╢реЗрд╖ рдирд╣реАрдВ рд╣реИред рдЗрд╕рдореЗрдВ рддреАрди рдХрд╛рдлреА рдорд╛рдирдХ рдЧреБрдг рд╣реИрдВ - message , lineNumber рдФрд░ lineNumber ред рдпрд╣ рдбреЗрдЯрд╛, window.onerror рдИрд╡реЗрдВрдЯ рд╣реИрдВрдбрд▓рд░ рдХреЛ рджреА рдЧрдИ рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рдмреЗрдорд╛рдиреА рдорд╛рдирд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдореВрд▓реНрдп рдЧреИрд░-рдорд╛рдирдХ рд╕рдВрдкрддреНрддрд┐ Error.prototype.stack ред рдпрд╣ рд╕рдВрдкрддреНрддрд┐ рдХреЙрд▓ рд╕реНрдЯреИрдХ (рддреНрд░реБрдЯрд┐ рд╕реНрдЯреИрдХ) рддрдХ рдкрд╣реБрдВрдЪ рджреЗрддреА рд╣реИ, рдЖрдкрдХреЛ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИ рдХрд┐ рдХрд╛рд░реНрдпрдХреНрд░рдо рдореЗрдВ рдЙрд╕ рд╕рдордп рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рдерд╛ рдЬрдм рддреНрд░реБрдЯрд┐ рд╣реБрдИ рдереА, рдЬреЛ рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓ рдиреЗ рдЕрдкрдиреА рдЙрдкрд╕реНрдерд┐рддрд┐ рд╕реЗ рдкрд╣рд▓реЗ рдХреА рдереАред рдХреЙрд▓ рд╕реНрдЯреИрдХ рдЯреНрд░реЗрд╕рд┐рдВрдЧ рдбреАрдмрдЧрд┐рдВрдЧ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣рд┐рд╕реНрд╕рд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдФрд░, рдЗрд╕ рддрдереНрдп рдХреЗ рдмрд╛рд╡рдЬреВрдж рдХрд┐ stack рд╕рдВрдкрддреНрддрд┐ рдорд╛рдирдХ рдирд╣реАрдВ рд╣реИ, рдпрд╣ рд╕рднреА рдЖрдзреБрдирд┐рдХ рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реИред

рдпрд╣ рд╡рд╣реА рд╣реИ рдЬреЛ Chrome 46 рдореЗрдВ рддреНрд░реБрдЯрд┐ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА stack рдЧреБрдг рдЬреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИред

 "Error: foobar\n    at new bar (<anonymous>:241:11)\n    at foo (<anonymous>:245:5)\n at <anonymous>:250:5\n    at <anonymous>:251:3\n at <anonymous>:267:4\n at callFunction (<anonymous>:229:33)\n    at <anonymous>:239:23\n at <anonymous>:240:3\n at Object.InjectedScript.\_evaluateOn (<anonymous>:875:140)\n    at Object.InjectedScript.\_evaluateAndWrap (<anonymous>:808:34)" 

рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рд╣рдо рдПрдХ рдЧреИрд░-рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╣реИред рдЬрдм рдЗрд╕ рд╕рдВрдкрддреНрддрд┐ рдХреА рд╕рд╛рдордЧреНрд░реА рдЗрд╕ рд░реВрдк рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХреА рдЬрд╛рддреА рд╣реИ, рддреЛ рдЗрд╕рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдЕрд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИред рдпрд╣рд╛рдВ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рд╕реНрд╡рд░реВрдкрдг рдХреЗ рдмрд╛рдж рднреА рдРрд╕рд╛ рд╣реА рд╣реЛрдЧрд╛ред

 Error: foobar at new bar (<anonymous>:241:11) at foo (<anonymous>:245:5) at callFunction (<anonymous>:229:33) at Object.InjectedScript._evaluateOn (<anonymous>:875:140) at Object.InjectedScript._evaluateAndWrap (<anonymous>:808:34) 

рдЕрдм, рд╕реНрд╡рд░реВрдкрдг рдХреЗ рдмрд╛рдж, рддреНрд░реБрдЯрд┐ рд╕реНрдЯреИрдХ рдмрд╣реБрдд рд╕реНрдкрд╖реНрдЯ рджрд┐рдЦрддрд╛ рд╣реИ, рдпрд╣ рддреБрд░рдВрдд рд╕реНрдкрд╖реНрдЯ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдбреАрдмрдЧ рдХрд░рддреЗ рд╕рдордп stack рдЧреБрдг рдмрд╣реБрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рдХреНрдпреЛрдВ рд╣реИред

рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣рд╛рдВ рд╕рдм рдХреБрдЫ рдЖрд╕рд╛рдиреА рд╕реЗ рдирд╣реАрдВ рд╣реЛ рд░рд╣рд╛ рд╣реИред stack рдЧреБрдг рдХреЛ рдорд╛рдирдХреАрдХреГрдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЗрд╕реЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдореЗрдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рддрд░реАрдХреЗ рд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрд╣рд╛рдВ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ рдХрд┐ рдЗрдВрдЯрд░рдиреЗрдЯ рдПрдХреНрд╕рдкреНрд▓реЛрд░рд░ 11 рдореЗрдВ рддреНрд░реБрдЯрд┐ рд╕реНрдЯреИрдХ рдХреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИред

 Error: foobar at bar (Unknown script code:2:5) at foo (Unknown script code:6:5) at Anonymous function (Unknown script code:11:5) at Anonymous function (Unknown script code:10:2) at Anonymous function (Unknown script code:1:73) 

рдЖрдк рдкрд┐рдЫрд▓реЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕рд╛рде рддреБрд▓рдирд╛ рдореЗрдВ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдХрд┐ рдпрд╣рд╛рдВ рди рдХреЗрд╡рд▓ рд╕реНрдЯреИрдХ рдлреНрд░реЗрдо рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рдкреНрд░рд╛рд░реВрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдмрд▓реНрдХрд┐ рдпрд╣ рднреА рд╣реИ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдлреНрд░реЗрдо рдХреЗ рд▓рд┐рдП рдХрдо рдбреЗрдЯрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, Chrome new рдХреАрд╡рд░реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреА рдкрд╣рдЪрд╛рди рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЕрдиреНрдп рдШрдЯрдирд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ (рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддреГрдд рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред _evaluateOn рдФрд░ред _evaluateAndWrap )ред рдЙрд╕реА рд╕рдордп, рдпрд╣рд╛рдВ рд╣рдордиреЗ рдХреЗрд╡рд▓ IE рдФрд░ рдХреНрд░реЛрдо рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХреНрдпрд╛ рджрд┐рдпрд╛ред рдЕрдиреНрдп рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕реНрдЯреИрдХ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдбреЗрдЯрд╛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдФрд░ рдЗрд╕ рдбреЗрдЯрд╛ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдЬрд╛рдирдХрд╛рд░реА рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред

рдпрд╣ рд╕рдм рдПрдХ рд╕рдорд╛рди рд░реВрдк рдореЗрдВ рд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рддреАрд╕рд░реЗ рдкрдХреНрд╖ рдХреЗ рдЙрдкрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд░реЗрд╡реЗрди-рдЬреЗрдПрд╕ рдЗрд╕рдХреЗ рд▓рд┐рдП рдЯреНрд░реЗрд╕рдХрд┐рдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред Stacktrace.js рдФрд░ рдХреБрдЫ рдЕрдиреНрдп рдкрд░рд┐рдпреЛрдЬрдирд╛рдПрдВ рдПрдХ рд╣реА рдЙрджреНрджреЗрд╢реНрдп рд╕реЗ рдХрд╛рдо рдХрд░рддреА рд╣реИрдВред

рд╡рд┐рднрд┐рдиреНрди рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рджреНрд╡рд╛рд░рд╛ window.onerror рд╕рдорд░реНрдерди рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ


windows.onerror рдШрдЯрдирд╛ рдХрд╛рдлреА рд╕рдордп рд╕реЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдореЗрдВ рдореМрдЬреВрдж рд╣реИред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдпрд╣ IE6 рдФрд░ рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ 2 рдореЗрдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣рд╛рдВ рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рд╕рднреА рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЕрд▓рдЧ-рдЕрд▓рдЧ рддрд░реАрдХреЛрдВ рд╕реЗ windows.onerror рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрд╣ рдЗрд╕ рдШрдЯрдирд╛ рдХреЗ рд╕рдВрдЪрд╛рд▓рдХреЛрдВ рдХреЛ рдкрд╛рд░рд┐рдд рддрд░реНрдХреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдФрд░ рд╕рдВрд░рдЪрдирд╛ рдХреА рдЪрд┐рдВрддрд╛ рдХрд░рддрд╛ рд╣реИред

рдпрд╣рд╛рдБ рдПрдХ рддрд╛рд▓рд┐рдХрд╛ рд╣реИ рдЬреЛ рдкреНрд░рдореБрдЦ рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдореЗрдВ onerror рд╣реИрдВрдбрд▓рд░ рдХреЛ рджрд┐рдП onerror рддрд░реНрдХреЛрдВ рдХреЛ onerror рд╣реИред
рдмреНрд░рд╛рдЙрдЬрд╝рд░
рд╕рдВрджреЗрд╢
рдпреВрдЖрд░рдПрд▓
lineno
colNo
errorObj
рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕
рд╡рд╣рд╛рдБ рд╣реИ
рд╡рд╣рд╛рдБ рд╣реИ
рд╡рд╣рд╛рдБ рд╣реИ
рд╡рд╣рд╛рдБ рд╣реИ
рд╡рд╣рд╛рдБ рд╣реИ
рдХреНрд░реЛрдо
рд╡рд╣рд╛рдБ рд╣реИ
рд╡рд╣рд╛рдБ рд╣реИ
рд╡рд╣рд╛рдБ рд╣реИ
рд╡рд╣рд╛рдБ рд╣реИ
рд╡рд╣рд╛рдБ рд╣реИ
рдзрд╛рд░
рд╡рд╣рд╛рдБ рд╣реИ
рд╡рд╣рд╛рдБ рд╣реИ
рд╡рд╣рд╛рдБ рд╣реИ
рд╡рд╣рд╛рдБ рд╣реИ
рд╡рд╣рд╛рдБ рд╣реИ
IE 11
рд╡рд╣рд╛рдБ рд╣реИ
рд╡рд╣рд╛рдБ рд╣реИ
рд╡рд╣рд╛рдБ рд╣реИ
рд╡рд╣рд╛рдБ рд╣реИ
рд╡рд╣рд╛рдБ рд╣реИ
IE10
рд╡рд╣рд╛рдБ рд╣реИ
рд╡рд╣рд╛рдБ рд╣реИ
рд╡рд╣рд╛рдБ рд╣реИ
рд╡рд╣рд╛рдБ рд╣реИ
рдирд╣реАрдВ
IE 9.8
рд╡рд╣рд╛рдБ рд╣реИ
рд╡рд╣рд╛рдБ рд╣реИ
рд╡рд╣рд╛рдБ рд╣реИ
рдирд╣реАрдВ
рдирд╣реАрдВ
рд╕рдлрд╛рд░реА 10 рдФрд░ рдЗрд╕рдХреЗ рдмрд╛рдж рдХреЗ рд╕рдВрд╕реНрдХрд░рдг
рд╡рд╣рд╛рдБ рд╣реИ
рд╡рд╣рд╛рдБ рд╣реИ
рд╡рд╣рд╛рдБ рд╣реИ
рд╡рд╣рд╛рдБ рд╣реИ
рд╡рд╣рд╛рдБ рд╣реИ
рд╕рдлрд╝рд╛рд░реА реп
рд╡рд╣рд╛рдБ рд╣реИ
рд╡рд╣рд╛рдБ рд╣реИ
рд╡рд╣рд╛рдБ рд╣реИ
рд╡рд╣рд╛рдБ рд╣реИ
рдирд╣реАрдВ
Android рдмреНрд░рд╛рдЙрдЬрд╝рд░ 4.4
рд╡рд╣рд╛рдБ рд╣реИ
рд╡рд╣рд╛рдБ рд╣реИ
рд╡рд╣рд╛рдБ рд╣реИ
рд╡рд╣рд╛рдБ рд╣реИ
рдирд╣реАрдВ

рд╢рд╛рдпрдж рдЖрд╢реНрдЪрд░реНрдп рдХреА рдмрд╛рдд рдирд╣реАрдВ рд╣реИ, рдЗрдВрдЯрд░рдиреЗрдЯ рдПрдХреНрд╕рдкреНрд▓реЛрд░рд░ 8, 9, рдФрд░ 10 рдореЗрдВ onerror рд▓рд┐рдП рд╕реАрдорд┐рдд рд╕рдорд░реНрдерди рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрд╣ рдЕрд╕рд╛рдорд╛рдиреНрдп рд▓рдЧ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рд╕рдлрд╛рд░реА рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рддреНрд░реБрдЯрд┐ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдХреЗрд╡рд▓ 10 рд╡реЗрдВ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛, 2016 рдореЗрдВ рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд▓реАрдЧреЗрд╕реА рдореЛрдмрд╛рдЗрд▓ рдбрд┐рд╡рд╛рдЗрд╕ рд╣реИрдВ рдЬреЛ рдорд╛рдирдХ рдПрдВрдбреНрд░реЙрдЗрдб рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рддреНрд░реБрдЯрд┐ рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рднреА рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдПрдВрдбреНрд░реЙрдЗрдб рдХреЗ рдЖрдзреБрдирд┐рдХ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ, рдЗрд╕ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЛ рдХреНрд░реЛрдо рдореЛрдмрд╛рдЗрд▓ рджреНрд╡рд╛рд░рд╛ рдмрджрд▓ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдпрджрд┐ рд╣рдорд╛рд░реЗ рдирд┐рдкрдЯрд╛рди рдореЗрдВ рдХреЛрдИ рддреНрд░реБрдЯрд┐ рд╡рд╕реНрддреБ рдирд╣реАрдВ рд╣реИ, рддреЛ рд╕реНрдЯреИрдХ рдЯреНрд░реЗрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреЛрдИ рдбреЗрдЯрд╛ рдирд╣реАрдВ рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЬреЛ рддреНрд░реБрдЯрд┐ рдХреЗ рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рд╡реЗ onerror рд╣реИрдВрдбрд▓рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдорд╛рдирдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рд╕реНрдЯреИрдХ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред рдФрд░ рдпрд╣, рдЬреИрд╕рд╛ рдХрд┐ рд╣рдордиреЗ рдХрд╣рд╛ рд╣реИ, рдмрд╣реБрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред

рд╡рд┐рдВрдбреЛ рдХреЗ рд▓рд┐рдП рдкреЙрд▓рд┐рдлрд╝рд┐рд▓ рдбреЗрд╡рд▓рдкрдореЗрдВрдЯред рдХреЛрд╢рд┐рд╢ / рдХреИрдЪ рдирд┐рд░реНрдорд╛рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ


рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рд╕реНрдЯреИрдХ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬреЛ onerror рд╣реИрдВрдбрд▓рд░ рдореЗрдВ рдПрдХ onerror рдСрдмреНрдЬреЗрдХреНрдЯ рдкрд╛рд╕ рдХрд░рдиреЗ рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдЖрдк рдирд┐рдореНрди рдЪрд╛рд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЖрдк рдХреЛрдб рдХреЛ рдПрдХ try/catch рдирд┐рд░реНрдорд╛рдг рдореЗрдВ рд▓рдкреЗрдЯ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рд╕реНрд╡рдпрдВ рдкрдХрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред рдкрд░рд┐рдгрд╛рдореА рддреНрд░реБрдЯрд┐ рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рд╕рднреА рдЖрдзреБрдирд┐рдХ рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдореЗрдВ, рдЬреЛ рд╣рдореЗрдВ рдЪрд╛рд╣рд┐рдП рд╡рд╣ stack рдкреНрд░реЙрдкрд░реНрдЯреА рд╣реИред
invoke() рд╕рд╣рд╛рдпрдХ рд╡рд┐рдзрд┐ рдХреЛрдб рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВ, рдЬреЛ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рджреА рдЧрдИ рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕реЗ рддрд░реНрдХреЛрдВ рдХреА рдПрдХ рд╕рд░рдгреА рджреЗрддрд╛ рд╣реИред

 function invoke(obj, method, args) { return obj[method].apply(this,args); } 

рдпрд╣рд╛рдБ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░рдирд╛ рд╣реИред

 invoke(Math, 'max', [1,2]); //  2 

рдпрд╣рд╛рдВ рдПрдХ рд╣реА invoke() , рд▓реЗрдХрд┐рди рдЕрдм рд╡рд┐рдзрд┐ рдХреЙрд▓ рдХреЛ try/catch рдореЗрдВ рд▓рдкреЗрдЯрд╛ рдЧрдпрд╛ рд╣реИ, рдЬреЛ рдЖрдкрдХреЛ рд╕рдВрднрд╛рд╡рд┐рдд рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдкрдХрдбрд╝рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред

 function invoke(obj, method, args) { try {   return obj[method].apply(this,args); } catch(e) {   captureError(e);//      throw e;//      } } invoke(Math,'highest',[1,2]); //  ,     Math.highest 

рдмреЗрд╢рдХ, рдпрд╣ рдмрд╣реБрдд рд╣реА рдорд╣рдВрдЧрд╛ рд╣реИ рдХрд┐ рдРрд╕реА рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХреЛ рд╕рднреА рд╕реНрдерд╛рдиреЛрдВ рдкрд░ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдП рдЬрд╣рд╛рдВ рдЙрдирдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИред рдПрдХ рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рд╕рд╣рд╛рдпрдХ рд╕рдорд╛рд░реЛрд╣ рдмрдирд╛рдХрд░ рдЗрд╕ рдХрд╛рд░реНрдп рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

 function wrapErrors(fn) { //      if(!fn.__wrapped__) {   fn.__wrapped__ = function() {     try{       return fn.apply(this,arguments);     }catch(e){       captureError(e);//          throw e;//          }   }; } return fn.__wrapped__; } var invoke = wrapErrors(function(obj, method, args) { returnobj[method].apply(this,args); }); invoke(Math,'highest',[1,2]);//,   Math.highest 

рдЪреВрдВрдХрд┐ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдПрдХрд▓-рдереНрд░реЗрдбреЗрдб рдХреЛрдб рдирд┐рд╖реНрдкрд╛рджрди рдореЙрдбрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕ рдЖрд╡рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреЗрд╡рд▓ рдЙрди рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓ рдХреЗ рд╕рд╛рде рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреЛ рдирдП рдвреЗрд░ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рд╣реИрдВред рдЗрд╕рдореЗрдВ рд╕рднреА рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓ рдХреЛ рд▓рдкреЗрдЯрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред

рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдпрд╣ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд┐рдореНрди рд╕реНрдерд╛рдиреЛрдВ рдкрд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:

  • рдЬрд╣рд╛рдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, jQuery рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп, $(document).ready рдлрд╝рдВрдХреНрд╢рди)
  • рдИрд╡реЗрдВрдЯ рд╣реИрдВрдбрд▓рд░ рдореЗрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, addEventListener рдпрд╛ рдлреЙрд░реНрдо рдХреЗ рдирд┐рд░реНрдорд╛рдг рдореЗрдВ $.fn.click )
  • рдЯрд╛рдЗрдорд░ рдШрдЯрдирд╛рдУрдВ рджреНрд╡рд╛рд░рд╛ рдмреБрд▓рд╛рдП рдЧрдП рдХреЙрд▓рдмреИрдХ рдореЗрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрд╣ requestAnimationFrame рдпрд╛ requestAnimationFrame

рдпрд╣рд╛рдБ wrapErrors рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджрд┐рдпрд╛ wrapErrors рд╣реИред

 $(wrapErrors(function () {//    doSynchronousStuff1();//     setTimeout(wrapErrors(function () {   doSynchronousStuff2();//      })); $('.foo').click(wrapErrors(function () {   doSynchronousStuff3();//     })); })); 

рдЗрд╕ рддрд░рд╣ рдХреЗ рдирд┐рд░реНрдорд╛рдгреЛрдВ рдХреЛ рд╕реНрд╡рдпрдВ рдХреЛрдб рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдмрд╣реБрдд рд╕рдордп рд▓реЗрдиреЗ рд╡рд╛рд▓рд╛ рдХрд╛рд░реНрдп рд╣реИред рдРрд╕реА рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ рдПрдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╡рд┐рдХрд▓реНрдк рдХреЗ рд░реВрдк рдореЗрдВ, рдЖрдк рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдРрд╕реЗ рддрдВрддреНрд░ рд╣реИрдВ рдЬреЛ рддреНрд░реБрдЯрд┐рдпреЛрдВ addEventListener рд▓рд┐рдП рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ setTimeout addEventListener рдФрд░ setTimeout addEventListener рд╣реИрдВред

рд╕рд░реНрд╡рд░ рдореЗрдВ рддреНрд░реБрдЯрд┐ рд╕реНрдерд╛рдирд╛рдВрддрд░рдг


рдЗрд╕рд▓рд┐рдП, рдЕрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЕрдкрдиреЗ рдирд┐рдкрдЯрд╛рди рдХреЗ рд╕рд╛рдзрдиреЛрдВ рдореЗрдВ рддреНрд░реБрдЯрд┐ рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рдпрд╛ рддреЛ windows.onerror рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдпрд╛ try/catch рдЖрдзрд╛рд░ рдкрд░ рд╕рд╣рд╛рдпрдХ рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдорддрд▓рдм рд╣реИред рдХреНрд▓рд╛рдЗрдВрдЯ рдХреА рдУрд░ рд╕реЗ рдпреЗ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рд╣реЛрддреА рд╣реИрдВ, рдФрд░ рдЙрдирдХреЗ рдЕрд╡рд░реЛрдзрди рдХреЗ рдмрд╛рдж, рд╣рдо рдЙрдирд╕реЗ рдирд┐рдкрдЯрдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдЦрддреНрдо рдХрд░рдиреЗ рдХреЗ рдЙрдкрд╛рдп рдХрд░реЗрдВрдЧреЗред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЙрдиреНрд╣реЗрдВ рд╣рдорд╛рд░реЗ рд╕рд░реНрд╡рд░ рдкрд░ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдПрдХ рд╡реЗрдм рд╕реЗрд╡рд╛ рддреИрдпрд╛рд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬреЛ HTTP рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рддреНрд░реБрдЯрд┐ рдЬрд╛рдирдХрд╛рд░реА рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддреА рд╣реИ, рдФрд░ рдлрд┐рд░ рдХрд┐рд╕реА рддрд░рд╣ рдЗрд╕реЗ рдЖрдЧреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рд╕рд╣реЗрдЬрддреА рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрд╣ рдПрдХ рд▓реЙрдЧ рдлрд╝рд╛рдЗрд▓ рдпрд╛ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рд▓рд┐рдЦрддреА рд╣реИред

рдпрджрд┐ рдпрд╣ рд╡реЗрдм рд╕реЗрд╡рд╛ рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╕рдорд╛рди рдбреЛрдореЗрди рдкрд░ рд╕реНрдерд┐рдд рд╣реИ, рддреЛ XMLHttpRequest рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛрдЧрд╛ред рдирд┐рдореНрди рдЙрджрд╛рд╣рд░рдг рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдХрд┐ рд╕рд░реНрд╡рд░ рд╕реЗ рдбреЗрдЯрд╛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП jQuery рд╕реЗ AJAX рдкреНрд░рд╢реНрдиреЛрдВ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░реЗрдВред

 function captureError(ex){ var errorData = {   name:ex.name,// : ReferenceError   message:ex.line,// : x is undefined   url:document.location.href,   stack:ex.stack//   ; ,     ! }; $.post('/logger/js/',{   data:errorData }); } 

рдзреНрдпрд╛рди рд░рдЦреЗрдВ рдХрд┐ рдпрджрд┐ рдЖрдкрдХреЛ рд╕рд░реНрд╡рд░ рдХреЛ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрд░реЙрд╕-рдбреЛрдореЗрди рдЕрдиреБрд░реЛрдз рднреЗрдЬрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдРрд╕реЗ рдЕрдиреБрд░реЛрдзреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХрд╛ рдзреНрдпрд╛рди рд░рдЦрдирд╛ рд╣реЛрдЧрд╛ред

рдкрд░рд┐рдгрд╛рдо


рдЖрдкрдиреЗ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдкрдХрдбрд╝рдиреЗ рдФрд░ рд╕рд░реНрд╡рд░ рдкрд░ рдЙрдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реЗрд╡рд╛ рдмрдирд╛рдиреЗ рдХреА рдореВрд▓ рдмрд╛рддреЗрдВ рд╕реАрдЦреА рд╣реИрдВред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдпрд╣рд╛рдВ рд╣рдордиреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдореБрджреНрджреЛрдВ рдХреА рдЬрд╛рдВрдЪ рдХреА:

  • onerror рдЗрд╡реЗрдВрдЯ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рдФрд░ рд╡рд┐рднрд┐рдиреНрди рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдореЗрдВ рдЗрд╕рдХрд╛ рд╕рдорд░реНрдердиред
  • рдЙрди рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдХреЙрд▓ рд╕реНрдЯреИрдХ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП onerror try/catch рдореИрдХреЗрдирд┐рдЬреНрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЬрд╣рд╛рдВ onerror рдПрд░рд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
  • рдбреЗрд╡рд▓рдкрд░ рдХреЗ рд╕рд░реНрд╡рд░ рдореЗрдВ рддреНрд░реБрдЯрд┐ рдбреЗрдЯрд╛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░реЗрдВред

рдЙрдкрд░реЛрдХреНрдд рддрдВрддреНрд░ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдкрдиреЗ рдмреБрдирд┐рдпрд╛рджреА рдЬреНрдЮрд╛рди рдкреНрд░рд╛рдкреНрдд рдХрд░ рд▓рд┐рдпрд╛ рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рдХрд╛рдо рдХреЗ рджреМрд░рд╛рди рдЕрддрд┐рд░рд┐рдХреНрдд рд╡рд┐рд╡рд░рдгреЛрдВ рдХреЛ рд╕реНрдкрд╖реНрдЯ рдХрд░рддреЗ рд╣реБрдП рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреА рдЦреБрдж рдХреА рдкреНрд░рдгрд╛рд▓реА рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ред рд╢рд╛рдпрдж рдпрд╣ рдкрд░рд┐рджреГрд╢реНрдп рдЙрди рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╣реИ рдЬрдм рдпрд╣ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдЖрд╡реЗрджрди рдХреА рдмрд╛рдд рдЖрддреА рд╣реИ, рдЬрд┐рд╕рдореЗрдВ, рд╕реБрд░рдХреНрд╖рд╛ рдХрд╛рд░рдгреЛрдВ рд╕реЗ, рдпрд╣ рддреАрд╕рд░реЗ рдкрдХреНрд╖ рдХреЗ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдирд╣реАрдВ рд╣реИред рдпрджрд┐ рдЖрдкрдХрд╛ рдЖрд╡реЗрджрди рддреГрддреАрдп-рдкрдХреНрд╖ рдХреЛрдб рдХреЗ рдЙрдкрдпреЛрдЧ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рддреЛ рдЖрдк рдЬреЗрдПрд╕ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХреЗ рд▓рд┐рдП рд╕рд╣реА рдЙрдкрдХрд░рдг рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕ рддрд░рд╣ рдХреЗ рдЙрдкрдХрд░рдгреЛрдВ рдореЗрдВ рд╕рдВрддрд░реА , рд░реЛрд▓рдмрд╛рд░ , рдЯреНрд░реИрдХрдЬреЗрдПрд╕ рдФрд░ рдЗрд╕реА рддрд░рд╣ рдХреА рдЕрдиреНрдп рдкрд░рд┐рдпреЛрдЬрдирд╛рдПрдВ рд╣реИрдВред

рдкреНрд░рд┐рдп рдкрд╛рдардХреЛрдВ! рдЬреЗрдПрд╕ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХреЗ рд▓рд┐рдП рдЖрдк рдХреМрди рд╕реЗ рдЙрдкрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ?

Source: https://habr.com/ru/post/hi413173/


All Articles