Используйте эту функцию для преобразования вашего URL в абсолютное значение:
function toAbsURL(s) {
var l = location, h, p, f, i;
if (/^\w+:/.test(s)) {
return s;
}
h = l.protocol + '//' + l.host + (l.port!=''?(':' + l.port):'');
if (s.indexOf('/') == 0) {
return h + s;
}
p = l.pathname.replace(/\/[^\/]*$/, '');
f = s.match(/\.\.\//g);
if (f) {
s = s.substring(f.length * 3);
for (i = f.length; i--;) {
p = p.substring(0, p.lastIndexOf('/'));
}
}
return h + p + '/' + s;
}
Вы можете использовать
var base = document.getElementsByTagName('base')[0];
base.href = toAbsURL(base.href);
Пример http://jsfiddle.net/tEpkx/1/
За исключением того, что вы должныОпределите браузер и запустите его только для IE.Другие браузеры будут автоматически обновлять window.location с помощью href тега base
, и этот фрагмент кода снова изменит его.Поэтому запишите его как
<!--[if IE]>
<script type="text/javascript">
var base = document.getElementsByTagName('base')[0];
base.href = toAbsURL(base.href);
</script>
<![endif]-->
ps: <base />
- это один тег, для которого не требуется закрывающий тег.
Обновлен , чтобы включить номер порта, еслиустановлено.