Radiant::loadCSS = (fn, scope) ->
head = document.getElementsByTagName("head")[0]
link = document.createElement("link")
link.setAttribute "href", "/" + ri.context + "/css/" + @obj + ".css"
link.setAttribute "rel", "stylesheet"
link.setAttribute "type", "text/css"
sheet = undefined
cssRules = undefined
if "sheet" of link
sheet = "sheet"
cssRules = "cssRules"
else
sheet = "styleSheet"
cssRules = "rules"
timeout_id = setInterval(->
try
if link[sheet] and link[sheet][cssRules].length
clearInterval timeout_id
clearTimeout timeout_id
fn.call scope or window, true, link #LINE THAT ERRORS OUT!!!
#finally
, 10)
timeout_id = setTimeout(->
clearInterval timeout_id
clearTimeout timeout_id
head.removeChild link
fn.call scope or window, false, link
, 15000)
head.appendChild link
link
So above is my translation of a function ripped from here : Dynamically loading css file using javascript with callback without jQuery
When I had this in straight javascript it worked great, but the coffee version is giving me problems in ie8 'fn' is null or not an object
Here is the rendered javascript for that section:
timeout_id = setInterval(function() {
try {
if (link[sheet] && link[sheet][cssRules].length) {
clearInterval(timeout_id);
clearTimeout(timeout_id);
return fn.call(scope || window, true, link); //ERROR LINE!!!
}
} catch (_error) {}
}, 10);
Anyway I am new to try
and catch
and just don't understand what is going wrong here. Thanks in advance everyone!