From 1ff6d33aa87aea3e9bd028839e32fa2b9eb99ba3 Mon Sep 17 00:00:00 2001 From: Chris Rebert Date: Tue, 18 Feb 2014 01:45:58 -0800 Subject: use @ssorallen's blob support test in customizer; fixes #12617 --- docs/assets/js/src/customizer.js | 50 +++++++++++++++++++++++++++++----------- 1 file changed, 36 insertions(+), 14 deletions(-) (limited to 'docs/assets/js/src') diff --git a/docs/assets/js/src/customizer.js b/docs/assets/js/src/customizer.js index 4ce304f1a..cee3c5766 100644 --- a/docs/assets/js/src/customizer.js +++ b/docs/assets/js/src/customizer.js @@ -327,20 +327,42 @@ window.onload = function () { // wait for load in a dumb way because B-0 saveAs(blob, 'bootstrap.zip') createGist(configJson) }) - }) - - // browser support alerts - if (!window.URL && navigator.userAgent.toLowerCase().indexOf('safari') != -1) { - showCallout('Looks like you\'re using safari, which sadly doesn\'t have the best support' + - 'for HTML5 blobs. Because of this your file will be downloaded with the name "untitled".' + - 'However, if you check your downloads folder, just rename this "untitled" file' + - 'to "bootstrap.zip" and you should be good to go!') - } else if (!window.URL && !window.webkitURL) { - $('.bs-docs-section, .bs-docs-sidebar').css('display', 'none') - - showCallout('Looks like your current browser doesn\'t support the Bootstrap Customizer. Please take a second' + - 'to upgrade to a more modern browser.', true) - } + }); + + // browser support alert + (function () { + function failback() { + $('.bs-docs-section, .bs-docs-sidebar').css('display', 'none') + showCallout('Looks like your current browser doesn\'t support the Bootstrap Customizer. Please take a second ' + + 'to upgrade to a more modern browser (other than Safari).', true) + } + /** + * Based on: + * Blob Feature Check v1.1.0 + * https://github.com/ssorallen/blob-feature-check/ + * License: Public domain (http://unlicense.org) + */ + var url = window.webkitURL || window.URL // Safari 6 uses "webkitURL". + var svg = new Blob( + [''], + {type: 'image/svg+xml;charset=utf-8'} + ) + var objectUrl = url.createObjectURL(svg); + if (/^blob:/.exec(objectUrl) === null) { + // `URL.createObjectURL` created a URL that started with something other + // than "blob:", which means it has been polyfilled and is not supported by + // this browser. + failback() + } + else { + $('') + .on('load', function () { + $compileBtn.prop('disabled', false) + }) + .on('error', failback) + .attr('src', objectUrl) + } + })(); parseUrl() } -- cgit v1.2.3