Эй все, я пытался бросить вместе родовую функцию, которая получает абсолютный URL выполняющегося файла JavaScript на веб-странице:
В основном Вы добираетесь для вызова чего-то вроде этого:
getScriptName(function(url) {
console.log(url);
// http://www.example.com/myExternalJsFile.js
});
во внешнем файле JavaScript на странице и может затем сделать что-то с ним (как находка тег, который загрузил его, например).
Это работает отлично почти во всех браузерах, которые я протестировал (Firefox, Chrome, Safari, Opera v10, по крайней мере, и IE 8).
Это, кажется, перестало работать, однако, в IE 6 и 7. Функция обратного вызова выполняется, но полученным именем является URL к основной странице HTML, не файл JavaScript. Продолжая пример, getScriptName
вызывает обратный вызов с параметром: http://www.example.com/index.html
Таким образом, все, что я действительно спрашиваю, - то, если существует некоторый другой способ получить URL текущего файла JavaScript (который мог быть IE 6 и 7 определенными хакерствами)?Заранее спасибо!
Править: Кроме того, это не будет работать в каждом случае, поэтому не рекомендуйте это:
var scripts = document.getElementsByTagName("script");
return scripts[scripts.length-1].src;
Я хотел бы, чтобы это работало в случае динамично созданных тегов script (возможно не помещенный в последний раз в страницу), иначе ленивая загрузка.