Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Выбор значения get переменной из подключения к скрипту (https://javascript.ru/forum/misc/44823-vybor-znacheniya-get-peremennojj-iz-podklyucheniya-k-skriptu.html)

cript 03.02.2014 19:34

Выбор значения get переменной из подключения к скрипту
 
Приветствую!
Возник такой вопрос, в интернете ничего по этому поводу не нашел..
Например подключаем скрипт таким образом <script type="text/javascript" language="JavaScript" src="SCRIPT.js?id=2">
Нужно в файле script.js определить значение id, как это сделать?

danik.js 03.02.2014 19:46

Цитата:

Сообщение от cript
language="JavaScript"

Атрибут устаревший и полностью игнорируется если указан атрибут type (который тоже в большинстве случаев не обязателен)
Цитата:

Сообщение от cript
Нужно в файле script.js определить значение id, как это сделать?

А как насчет такого варианта?
<!DOCTYPE html>
<script src="script.js">{"id": 1}</script>

script.js:
(function(){
    var currentScript = document.scripts[document.scripts.length - 1];
    var options = JSON.parse(currentScript.text);
    alert(options.id);
})();

Яростный Меч 03.02.2014 19:46

Цитата:

Сообщение от cript
Например подключаем скрипт таким образом <script type="text/javascript" language="JavaScript" src="SCRIPT.js?id=2">
Нужно в файле script.js определить значение id, как это сделать?

при таком подключении скрипт исполняется сразу, и его объект будет последним, в общем, иллюстрация этих непонятных словес в коде:
// это помещаем внутрь script.js
(function() {
    var scrs = document.getElementsByTagName("script");
    console.log(scrs[scrs.length-1].src);
})();

загляни в консоль, там должно быть (там не может не быть).

cript 04.02.2014 15:15

danik.js,
Супер! То что нужно!

danik.js 04.02.2014 15:36

Можно еще так. Так даже лучше, мне кажется..
<script src="script.js" data-id="1"></script>

(function(){
    var currentScript = document.scripts[document.scripts.length - 1];
    // var id = currentScript.dataset.id; // этот вариант лучше, но не работает в старых браузерах ((
    var id = currentScript.getAttribute('data-id');
})();


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