jQuery: чтение переменной из внешнего файла Javascript

Я застрял. Я действительно не знаю, что я делаю неправильно, но я не могу вернуть строку в переменную во встроенном Javascript.

token.js:

function token () {
    return "mysecretstring";
}

HTML-код:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>TXTURE Server Status</title>
    <script src="http://code.jquery.com/jquery-1.12.4.min.js" type="text/javascript"></script>
    <script type="text/javascript">
        token_val="";
        $.getScript('./token.js', function(data) {
            token_val = token();
            console.log("function: " + token_val);
        });

    </script>

</head>
<body>

</body>
</html>

Я могу делать все, что захочу, token_val остается пустым. Любые намеки приветствуются.

С наилучшими пожеланиями, Томас

4 ответа

Решение

Я не использую этот способ для ссылки на функцию JS. Я просто загружаю библиотеку js так же, как вы загружаете jquery-1.12.4.min.js, а затем вызываю функцию token() из скрипта. Код выглядит так:

<script src="path_to_project/tokens.js" type="text/javascript"></script>   
<script type="text/javascript">
   token_val = token();
   console.log("function: " + token_val);
</script>

Не могли бы вы попробовать изменить URL-аргумент с "./token.js" на "/token.js"?

Просто не используйте свой JQuery $.getScript(), но включите скрипт, который содержит token() функция с

<script type="text/javascript" src="/pathToScript">

И использовать функцию

Я немного изменил код, чтобы не путать слишком много токенов. Где-то посередине я получил ошибку "Неожиданная ошибка токена", которая вводит в заблуждение при использовании функции с тем же именем.:)

Во всяком случае, теперь этот код работает. Javascript:

function myaccesstoken() {
     return "mysecrectstring";
}

HTML:

<script src="token.js" type="text/javascript"></script>
<script type="text/javascript">
    let token_val = myaccesstoken();
</script>

Это просто, но иногда вы смотрите на стены, не видя окон слева от вас... в любом случае, спасибо.

С уважением, Томас

Другие вопросы по тегам