diff --git a/min/builder/bm.js b/min/builder/bm.js index ec06831..56a639f 100644 --- a/min/builder/bm.js +++ b/min/builder/bm.js @@ -1,22 +1,23 @@ javascript:(function() { - function add(uri) { - (0 === uri.indexOf(home)) - && (!/[\?&]/.test(uri)) - && uris.push(escape(uri.substr(home.length))); - } - function sheet(ss) { - ss.href && add(ss.href); - if (ss.cssRules) { - var i = 0, r; - while (r = ss.cssRules[i++]) - r.styleSheet && sheet(r.styleSheet); - } - } var d = document ,uris = [] ,i = 0 ,o ,home = (location + '').split('/').splice(0, 3).join('/') + '/'; + function add(uri) { + return (0 === uri.indexOf(home)) + && (!/[\?&]/.test(uri)) + && uris.push(escape(uri.substr(home.length))); + }; + function sheet(ss) { + // we must check the domain with add() before accessing ss.cssRules + // otherwise a security exception will be thrown + if (ss.href && add(ss.href) && ss.cssRules) { + var i = 0, r; + while (r = ss.cssRules[i++]) + r.styleSheet && sheet(r.styleSheet); + } + }; while (o = d.getElementsByTagName('script')[i++]) o.src && !(o.type && /vbs/i.test(o.type)) && add(o.src); i = 0; @@ -25,5 +26,7 @@ javascript:(function() { if (uris.length) window.open('%BUILDER_URL%#' + uris.join(',')); else - alert('No minifiable resources found.'); + alert('No js/css files found with URLs within "' + + home.split('/')[2] + + '".\n(This tool is limited to URLs with the same domain.)'); })(); \ No newline at end of file