Как определить директорию (URL) в которой лежит скрипт?
Существует ли возможность определить URL включаемого в html *.js файла изнутри этого файла? Необходимо для выцепливания картинок и других js файлов, лежащих там же.
|
Теоретически, можно:
function getScriptDirectory(){ var scripts = document.getElementsByTagName("script"); // все элементы SCRIPT var href = scripts[scripts.length - 1].src || location.href; // последний из списка. Если SRC нет, значит, внедренный, и берем адрес самой страницы return href.replace(/[#\?].*/g, '').replace(/[^\/]*$/, '/'); // удаляем из URL query string и hash, после чего удаляем все после последнего слеша } Но я бы не стал сильно на это полагаться. Предположение «выполняется тот скрипт, который последний» может вполне оказаться неверным. UPD: Опаньки, хайлайтер неправильно коммент распознал. |
var scripts = document.getElementsByTagName("script"); А уверенность в этой строке есть? Элемент script создается до парсинга/исполнения или же после исполнения? Цитата:
|
До парсинга последующих элементов. Иначе как по-вашему должен работать document.write?
<script></script> <script> alert(document.getElementsByTagName("script").length) </script> <script></script> Проблема может быть (и, скорее всего, будет) с document.body.insertBefore(myScriptNode, document.body.firstChild) Цитата:
|
Цитата:
|
Часовой пояс GMT +3, время: 16:26. |