тег base или как превратить относительную адресацию в абсолютнуюСуществует несколько случаев, когда бывает полезно использовать тэг base, например, когда одни и те же изображение часто встречаются в разных структурных частях сайта. При этом при частом переносе html страниц с локального компьютера на сервер хостера (разработка ведется на локалке, а готовый материал публикуется) возникает необходимость каждый раз переписывать base, что делать не очень то хочется, а вернее совсем не хочется. Ситуацию может помочь разрешить следующий скрипт:
var url = document.URL.split("/"); //разбиваем url на части
var base = "";
for (var i = 0; i < url.length-2; i++) //определяем уровень вложенности (2)
//либо for (var i = 0; i < 3; i++)
base += url[i]+"/";
document.write("<base href=\"" + base + "\" />"); //пишем результат
Для каждого уровня вложенности необходимо изменить всего лишь одну цифру.
Если страниц много, предыдущее можно вынести в отдельный файл, а где надо в head'е писать:
проблемы:
Можно попробовать решить ситуацию элегантнее:
document.write("<base href='"+location.protocol+"//"+location.host+"' />");
Таким образом, в любую страницу мы можем вставить строчку JavaScript кода, которая превратит все относительные ссылки в абсолютные.
полезная информация Свойство location объекта window возвращает указатель на объект location, содержащий информацию об URI документа, открытого в окне. В общем виде URI имеет вид: протокол://хост:порт/путь#закладка?запрос Объект location содержит названные фрагменты URI как свойства, доступные для чтения и записи:
Кроме того, данный объект имеет два метода:
Если вам помогла или просто понравилась эта статья вы можете отблагодарить автора кликнув по рекламе. Спасибо! комментировать:
прежде чем писать комментарий убедитесь, пожалуйста, что он не попадает в нижеследующие категории:
прямые оскорбления кого бы то ни было будут удалятся! от кого: |


