Read the statement by Michael Teeuw here.
Dealing with 404 url error in module.
-
I appreciate you trying to help but I could have kept googling myself. I’m looking for an explanation, too, and not just a random “try this!”. Thanks
-
@mykle1 sorry, you are using some words that don’t describe well what the problem is…
i THINK you said
when I try to load image files (local to the MM system), I use a URL string. that URL string is 'relative' to the base of my server, defined by '??????' (you didn't supply that) when a URL fails to load, I get error 404. (not found). but how do I handle this?
you would add an onerror() handler for the img object
this will get called ONLY when there is an errorimg.onerror = funtion(event_object){
var img_with_error = event_object.currentTarget
img_with_error.src=??? the url of the failing image
}see https://www.w3schools.com/jsref/obj_event.asp
for more info in decoding the event object -
@sdetweil said in Dealing with 404 url error in module.:
sorry, you are using some words that don’t describe well what the problem is…
Yes, I’m sorry about the description but you understood my meaning, so thank you for that. :thumbsup:
Your onerror() handler suggestion is/was exactly what I needed/wanted and works beautifully. Again, thank you. I do appreciate that you took the time to give me advice/assistance. Here is the finished, working tag:
// picture var img = document.createElement("img"); img.classList.add("photo"); img.src = EOL.eolMediaURL; img.onerror = function(event_object) { // This function replaces broken image var img_with_error = event_object.currentTarget // This function replaces broken image img_with_error.src= "modules/MMM-EOL/images/darwin.jpg" // This is the path to the replacement image } wrapper.appendChild(img);
I would be remiss if I did not thank @cowboysdude, as well, for his help on this module.
-
@mykle1 note that your onerror handler could get stuck in a loop IF the forced replacement url also fails
-
That’s good to know. Thanks to you again. If you were in NYC I would buy you a beer (or many). :-)
-