I am trying to attach an event handler for the onerror
event (404 error) to a <link>
element.
I have something like this on my page:
<link rel="stylesheet" type="text/css" href="dead/link.css" onerror="handle404Error()" />
It works fine on Chrome and Opera but it should work on IE9+ too. I found this, but I can't find a solution myself.
Is there a way to do that without writing an extra method to load styles dynamically?
NOTE: I didn't tag this question with 'jquery', so please don't use it in your answers.
In IE, the
onerror
event does not fire on invalidlink
URLs, but theonload
event does.In Chrome, the opposite is true: The
onload
event does not fire on invalidlink
URLs, but theonerror
event does.So you'll need to use both events:
Example using invalid URL:
http://jsfiddle.net/et0g2xg6/
Example using valid URL:
http://jsfiddle.net/et0g2xg6/1
Update August 2017, thanks to @Alex:
IE When the link href is for an invalid domain url, e.g. not a 404, then IE throws a
Access is denied
when trying to access thecssRules
property.Following solution works in Firefox, you just need to arrange function definition and function calling: