summaryrefslogtreecommitdiffstats
path: root/loleaflet/js/global.js
diff options
context:
space:
mode:
Diffstat (limited to 'loleaflet/js/global.js')
-rw-r--r--loleaflet/js/global.js35
1 files changed, 23 insertions, 12 deletions
diff --git a/loleaflet/js/global.js b/loleaflet/js/global.js
index 6a0bd23dfd..5e0007d43a 100644
--- a/loleaflet/js/global.js
+++ b/loleaflet/js/global.js
@@ -571,20 +571,16 @@
{
// re-write relative URLs in CSS - somewhat grim.
window.addEventListener('load', function() {
- var sheets = document.styleSheets;
- for (var i = 0; i < sheets.length; ++i) {
- var relBases = sheets[i].href.split('/');
- relBases.pop(); // bin last - css name.
- var replaceBase = 'url("' + relBases.join('/') + '/images/';
+ var replaceUrls = function(rules, replaceBase) {
+ if (!rules)
+ return;
- var rules;
- try {
- rules = sheets[i].cssRules || sheets[i].rules;
- } catch (err) {
- console.log('Missing CSS from ' + sheets[i].href);
- continue;
- }
for (var r = 0; r < rules.length; ++r) {
+ // check subset of rules like @media or @import
+ if (rules[r] && rules[r].type != 1) {
+ replaceUrls(rules[r].cssRules || rules[r].rules, replaceBase);
+ continue;
+ }
if (!rules[r] || !rules[r].style)
continue;
var img = rules[r].style.backgroundImage;
@@ -596,6 +592,21 @@
img.replace('url("images/', replaceBase);
}
}
+ };
+ var sheets = document.styleSheets;
+ for (var i = 0; i < sheets.length; ++i) {
+ var relBases = sheets[i].href.split('/');
+ relBases.pop(); // bin last - css name.
+ var replaceBase = 'url("' + relBases.join('/') + '/images/';
+
+ var rules;
+ try {
+ rules = sheets[i].cssRules || sheets[i].rules;
+ } catch (err) {
+ console.log('Missing CSS from ' + sheets[i].href);
+ continue;
+ }
+ replaceUrls(rules, replaceBase);
}
}, false);
}