2016-06-06 22 views
0

Ich versuche, CSS-Fallbacks für CDNS mit dem Onload-Ereignis in Internet Explorer zu erstellen, aber ich habe Probleme, es zum Laufen zu bringen. Die onerror-Version funktioniert gut für Chrome und Firefox. Ich versuche, die Variable linkSuccess auf false festzulegen und das onload-Ereignis zu verwenden, um linkSuccess auf True zu ändern, wenn das Stylesheet geladen wird. Wenn das onload-Ereignis nicht ausgelöst wird, sollte linkSuccess false bleiben und das Fallback ausführen. Aber ich habe Probleme, es zur Arbeit zu bringen.Verwenden von Onload zum Erstellen von CSS-Fallback für Internet Explorer

Jede Hilfe, die Sie zur Verfügung stellen können, wird geschätzt! Vielen Dank!

<!-- CDNs for Bootstrap and Font-Awesome --> 
<link id="bootstrapFallback" onError="stylesheetFallback(this.id)" onLoad="ieFallbackCheck(this.id)" rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.1./css/bootstrap.min.css"> 
<link id="fontAwesomeFallback" onError="stylesheetFallback(this.id)" onLoad="ieFallbackCheck(this.id)" rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/font-awesome/4.3.0/css/font-awesome.min.css"> 

fallback.js Code:

var cssFallbacks = { 
    "bootstrapFallback" : "/bootstrap.min.css", 
    "fontAwesomeFallback" : "/font-awesome.min.css" 
}; 

var linkSuccess = false; 

function stylesheetFallback(fallbackKey) { 
    document.getElementById(fallbackKey).href = cssFallbacks[fallbackKey]; 
} 

function ieFallbackCheck(fallbackKey) { 
    var linkSuccess = true; 
} 

if (linkSuccess = false) { 
    document.getElementById("bootstrapFallback").href = cssFallbacks[bootstrapFallback]; 
    console.log("Initiate Fallback"); 
} 
+0

"Probleme haben, es zur Arbeit zu bringen" ... was bedeutet das? Bitte werfen Sie einen Blick auf [fragen]. Sie müssen Ihre Antwort mit mehr Informationen über das, was Sie erwarten, was tatsächlich passiert, und alle Fehler, die Sie in der Konsole erhalten, bearbeiten. –

Antwort

0

Sie besser conditional comments für CSS-Fallbacks verwenden würde:

<link href="original-styles.css" type="text/css" rel="stylesheet"/> 
<!--[if lte IE 8]> 
<link href="ie6-fix.css" type="text/css" rel="stylesheet"/> 
<![endif]--> 

Der Link im Kommentar wird nur interpretiert werden von IE 8 und unten.