Skip to content

Instantly share code, notes, and snippets.

@atma
Created October 23, 2014 01:28
Show Gist options
  • Save atma/f7566451a29da35a855e to your computer and use it in GitHub Desktop.
Save atma/f7566451a29da35a855e to your computer and use it in GitHub Desktop.
(function(){
function addFont() {
var style = document.createElement('style');
style.rel = 'stylesheet';
document.head.appendChild(style);
style.textContent = localStorage.sourceSansPro;
}
try {
if (localStorage.sourceSansPro) {
// The font is in localStorage, we can load it directly
addFont();
} else {
// We have to first load the font file asynchronously
var request = new XMLHttpRequest();
request.open('GET', '/path/to/source-sans-pro.woff.css', true);
request.onload = function() {
if (request.status >= 200 && request.status < 400) {
// We save the file in localStorage
localStorage.sourceSansPro = request.responseText;
// ... and load the font
addFont();
}
}
request.send();
}
} catch(ex) {
// maybe load the font synchronously for woff-capable browsers
// to avoid blinking on every request when localStorage is not available
}
}());
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment