Examples using a script loader
This makes it possible to run examples hosted on hosts other than localhost. To get that version by default, debug.html has been renamed to index.html.
This commit is contained in:
59
demos/loader.js
Normal file
59
demos/loader.js
Normal file
@@ -0,0 +1,59 @@
|
||||
|
||||
|
||||
/**
|
||||
* Loader to add the plovr generated script to the document. The following
|
||||
* default values may be overridden with query string parameters:
|
||||
*
|
||||
* * hostname - the current hostname
|
||||
* * port - 9810
|
||||
* * mode - ADVANCED
|
||||
* * id - id param in loader.js query string; defaults to 'ol' if not set
|
||||
*
|
||||
* Usage:
|
||||
*
|
||||
* <script src="../loader.js?id=my-demo"></script>
|
||||
*/
|
||||
(function() {
|
||||
var scripts = document.getElementsByTagName('script');
|
||||
var params = {
|
||||
hostname: window.location.hostname,
|
||||
port: '9810',
|
||||
mode: 'ADVANCED',
|
||||
id: 'ol'
|
||||
};
|
||||
var chunks, search, pair;
|
||||
|
||||
var src, index, id, i;
|
||||
for (i = scripts.length - 1; i >= 0; --i) {
|
||||
src = scripts[i].getAttribute('src');
|
||||
if (~(index = src.indexOf('loader.js?'))) {
|
||||
// script params
|
||||
search = src.substr(index + 10);
|
||||
chunks = search ? search.split('&') : [];
|
||||
for (i = chunks.length - 1; i >= 0; --i) {
|
||||
pair = chunks[i].split('=');
|
||||
params[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1]);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
// url params
|
||||
search = window.location.search.substring(1);
|
||||
chunks = search ? search.split('&') : [];
|
||||
for (i = chunks.length - 1; i >= 0; --i) {
|
||||
pair = chunks[i].split('=');
|
||||
params[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1]);
|
||||
}
|
||||
|
||||
var host = params.hostname + ':' + params.port;
|
||||
delete params.hostname;
|
||||
delete params.port;
|
||||
|
||||
var pairs = [];
|
||||
for (var key in params) {
|
||||
pairs.push(encodeURIComponent(key) + '=' + encodeURIComponent(params[key]));
|
||||
}
|
||||
|
||||
var url = 'http://' + host + '/compile?' + pairs.join('&');
|
||||
document.write('<script type="text/javascript" src="' + url + '"></script>');
|
||||
}());
|
||||
Reference in New Issue
Block a user