Загрузить скрипт в html на основе куки

Как я могу загрузить скрипты в html на основе значения cookie. Мне нужно переключаться между режимами разработки и развертывания.

Я использую wro4j, но не могу найти, где возникает ошибка в этих сгруппированных js-файлах wro4j.

<head>

if (getcookie(debug-mode) загрузить следующие скрипты

<script type="text/javascript" src="/assets/v/{{ASSET_VERSION}}/main-core.js"></script>
<script type="text/javascript" src="/assets/v/{{ASSET_VERSION}}/angular-core.js"></script>
<script type="text/javascript" src="/assets/v/{{ASSET_VERSION}}/angular-app.js"></script>

иначе загрузить этот скрипт

<script type="text/javascript">
    loadIndividualJsCssFiles('config/assets.xml');
</script>
</head>

как этого добиться


person Govan    schedule 22.05.2014    source источник


Ответы (1)


document.cookie — это строка в браузере, содержащая все информацию о ваших файлах cookie. Быстрое и грязное решение может выглядеть примерно так:

function injectScript(src) {
    var script = document.createElement('script');
    script.src = src;
    script.type = 'text/javascript';
    document.body.appendChild(script);
}

if ( document.cookie.indexOf('debug-mode') > -1 ) {
    injectScript("/assets/v/{{ASSET_VERSION}}/main-core.js");
    injectScript("/assets/v/{{ASSET_VERSION}}/angular-core.js");
    injectScript("/assets/v/{{ASSET_VERSION}}/angular-app.js");

} else {
    var el = document.createElement('script');
    script.type = 'text/javascript';
    script.text = 'loadIndividualJsCssFiles(\'config/assets.xml\');';
    document.head.appendChild(el)
}

Примечание. Я не проверял это на себе

По сути, вы просто ищете появление имени файла cookie, который вы ищете, в строке document.cookie.

Более надежный подход может включать преобразование строки cookie в массив ключ-значение.

person Martin    schedule 22.05.2014
comment
Y U make rlemon сказал :( это не очень приятно. - person Benjamin Gruenbaum; 22.05.2014
comment
Я одобряю этот комментарий. - person rlemon; 22.05.2014