Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Как получить SRC вызываемого скрипта? (https://javascript.ru/forum/jquery/48646-kak-poluchit-src-vyzyvaemogo-skripta.html)

Veterinar 11.07.2014 10:27

Как получить SRC вызываемого скрипта?
 
При вставке внешнего JS хотелось бы передать в параметрах некоторые значения:
<script type="text/javascript" src="js/example.js?param=159"></script>

И в функции, из этого script.is узнать значение параметров.
Сам script.js хоть такой:
// Функция для получения параметра из адреса:
function getUrlVars(url){return url.slice(url.indexOf('?')).split(/[&?]{1}[\w\d]+=/);};
// получение значения параметра:
var param=getUrlVars(тут бы имя скрипта вставить...")['param'];
document.write('first='+param);


А вот как получить само значение атрибута scr у скрипта, чтобы передать в функцию?

Так не получается:
var script_scr = $('script [src *=example]').attr('src');


Спасибо за помощь!

MallSerg 11.07.2014 10:40

var last_script = document.scripts[document.scripts.length - 1] ;

И есть неплохой шанс что тебе повезет =) но есть множество нюансов

Veterinar 11.07.2014 11:15

MallSerg, а если это совсем не последний элемент в списке? - всё-таки найти нужно по атрибуту src.

Aetae 11.07.2014 12:18

Veterinar, он будет последним на момент вызова. В том случае конечно, если сам он не добавлен через скрипт.

Veterinar 11.07.2014 12:25

Вариант:
var adr = document.scripts[document.scripts.length - 1]; // возвращает объект. А как получить значение src?

var adr1 = adr.getAttribute('src'); // возвращает NULL

Aetae 11.07.2014 12:55

Veterinar,
var adr = document.scripts[document.scripts.length - 1];
очевидно надо вызывать из "js/example.js". Вы вызываете из встроенного в html <script> - понятно что src там null.

Veterinar 11.07.2014 13:09

Aetae, точно!
Тогда возникает вопрос: можно ли из подгружаемого скрипта обратиться к вызывающей страничке и её объектам?

Aetae 11.07.2014 13:22

Само собой. Разницы нет, все скрипты идут в одном потоке по порядку.

Veterinar 11.07.2014 13:37

Aetae, а каким образом можно получить из внешней странички адрес?

Aetae 11.07.2014 14:07

http://javascript.ru/forum/jquery/48...tml#post320607


Часовой пояс GMT +3, время: 10:01.