Mercurial > hg > webaudioevaluationtool
changeset 2384:2ddc68898dff
Fix for #81. Browsers which cannot start a Web Audio context will fail with a message listing supported browsers
author | Nicholas Jillings <nicholas.jillings@mail.bcu.ac.uk> |
---|---|
date | Fri, 20 May 2016 14:04:36 +0100 |
parents | 8696696f3a79 |
children | ef2e0f925be9 5b755f508e2e |
files | index.html js/core.js js/loader.js test.html |
diffstat | 4 files changed, 34 insertions(+), 11 deletions(-) [+] |
line wrap: on
line diff
--- a/index.html Fri May 20 13:29:26 2016 +0100 +++ b/index.html Fri May 20 14:04:36 2016 +0100 @@ -17,11 +17,7 @@ <!-- Use jQuery hosted from Google CDN --> <!--<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>--> <script type="text/javascript" src="js/jquery-2.1.4.js"></script> - <script type="text/javascript" src='js/specification.js'></script> - <script type="text/javascript" src='js/core.js'></script> - <script type="text/javascript" src='js/loudness.js'></script> - <script type="text/javascript" src='js/xmllint.js'></script> - <script type="text/javascript" src='js/WAVE.js'></script> + <script type="text/javascript" src="js/loader.js"></script> </head> <body>
--- a/js/core.js Fri May 20 13:29:26 2016 +0100 +++ b/js/core.js Fri May 20 14:04:36 2016 +0100 @@ -116,7 +116,7 @@ } } -window.onload = function() { +var onload = function() { // Function called once the browser has loaded all files. // This should perform any initial commands such as structure / loading documents @@ -3225,3 +3225,5 @@ return this.root; }; } + +onload(); \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/js/loader.js Fri May 20 14:04:36 2016 +0100 @@ -0,0 +1,29 @@ +// Script to load the relevant JS files if the system supports it + +window.onload = function() { + // First check if the Web Audio API is supported + if (window.AudioContext == undefined && window.webkitAudioContext == undefined) { + // Display unsuported error message + var body = document.getElementsByTagName("body")[0]; + body.innerHTML = "<h1>Sorry! Your browser is not supported :(</h1><p>Your browser does not support the HTML5 Web Audio API. Please use one of the following supported browsers instead.<p>"; + var table = document.createElement("table"); + table.border = "0"; + table.innerHTML = "<tr><td>Chrome</td><td>v10 or newer</td></tr>"; + table.innerHTML += "<tr><td>Firefox</td><td>v25 or newer</td></tr><tr><td>Safari (OSX)</td><td> v6 or newer, OSX only</td></tr>"; + table.innerHTML += "<tr><td>Safari (iOS)</td><td>iOS 6.1 or newer</td></tr>"; + table.innerHTML += "<tr><td>Edge</td><td>12 or newer</td></tr>"; + body.appendChild(table); + } else { + var head = document.getElementsByTagName("head")[0]; + var src_list = ['js/specification.js', 'js/core.js', 'js/loudness.js', 'js/xmllint.js', 'js/WAVE.js']; + for (var i=0; i<src_list.length; i++) { + var src = src_list[i]; + var script = document.createElement("script"); + script.type = "text/javascript"; + script.async = false; + script.defer = true; + script.src = src; + head.appendChild(script); + } + } +} \ No newline at end of file
--- a/test.html Fri May 20 13:29:26 2016 +0100 +++ b/test.html Fri May 20 14:04:36 2016 +0100 @@ -17,11 +17,7 @@ <!-- Use jQuery hosted from Google CDN --> <!--<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>--> <script type="text/javascript" src="js/jquery-2.1.4.js"></script> - <script type="text/javascript" src='js/specification.js'></script> - <script type="text/javascript" src='js/core.js'></script> - <script type="text/javascript" src='js/loudness.js'></script> - <script type="text/javascript" src='js/xmllint.js'></script> - <script type="text/javascript" src='js/WAVE.js'></script> + <script type="text/javascript" src="js/loader.js"></script> </head> <body>