diff --git a/src/_h5ai/js/inc/model/entry.js b/src/_h5ai/js/inc/model/entry.js index d9e6dfa6..51f4d056 100644 --- a/src/_h5ai/js/inc/model/entry.js +++ b/src/_h5ai/js/inc/model/entry.js @@ -2,7 +2,19 @@ modulejs.define('model/entry', ['_', 'core/types', 'core/ajax'], function (_, types, ajax) { var domain = document.domain, - location = document.location.href.replace(/^.*:\/\/[^\/]*/, '').replace(/[^\/]*$/, ''), + location = (function () { + + var location = document.location.pathname.replace(/[^\/]*$/, ''), + testpathname = '/a b', + a = document.createElement('a'); + + a.href = testpathname; + if (a.pathname === testpathname) { + location = encodeURIComponent(location).replace(/%2F/ig, '/').replace(/'/g, '%27'); + } + + return location; + }()), // utils diff --git a/src/_h5ai/js/inc/parser/apache-autoindex.js b/src/_h5ai/js/inc/parser/apache-autoindex.js index 5123aeed..aec0bcc0 100644 --- a/src/_h5ai/js/inc/parser/apache-autoindex.js +++ b/src/_h5ai/js/inc/parser/apache-autoindex.js @@ -9,7 +9,7 @@ modulejs.define('parser/apache-autoindex', ['_', '$', 'core/settings', 'core/for time = format.parseDate($tds.eq(2).text(), 'DD-MMM-YYYY HH:mm'), size = format.parseSize($tds.eq(3).text()); - absHref = absHref + $a.attr('href'); + absHref = absHref + $a.attr('href').replace(/'/g, '%27').replace(/\+/g, '%2B').replace(/\=/g, '%3D'); return label === 'Parent Directory' ? null : Entry.get(absHref, time, size); },