Извлечение переменной из внешнего javascript для выполнения внутри блока скрипта в теле

#javascript #jquery #html #parse-platform

#javascript #jquery #HTML #синтаксический анализ-платформа

Вопрос:

Скажем, у меня есть внешний файл javascript, first.js который содержит переменную с именем «оценка». Я хочу использовать эту переменную внутри <script> тега в теле (только после завершения обновления переменной внутри first.js , другими словами, я также хочу контролировать, когда это <script> внутреннее тело срабатывает, и, очевидно, использовать в нем «оценка» ). Есть ли способ сделать это? РЕДАКТИРОВАТЬ ——- По сути, я хочу сохранить эту переменную в браузере данных в parse.com . Вот мой скрипт—

     <script>

function giveit(){

var temp=whatScore();



Parse.initialize("myID", "myJDID");


var GameScore = Parse.Object.extend("GameScore");
var gameScore = new GameScore();

gameScore.set("score", temp);

gameScore.save(null, {
  success: function(gameScore) {
    // Execute any logic that should take place after the object is saved.
    alert('New object created with objectId: '   gameScore.id);
  },
  error: function(gameScore, error) {
    // Execute any logic that should take place if the save fails.
    // error is a Parse.Error with an error code and description.
    alert('Failed to create new object, with error code: '   error.message);
  }
});



}

</script>
  

giveit() функция вызывается при нажатии кнопки. Я использовал атрибут onlogin.
Теперь whatScore() определена функция first.js , которая выглядит следующим образом:

 function whatScore()
{
return score;
}
  

Я сохранил результат в temp и использовал temp в приведенном ниже коде, но он не работает.
В консоли написано, что «whatScore» не определен. Что я могу сделать, чтобы функция first.js whatScore действительно была определена внутри <script> тега??
Спасибо.

Комментарии:

1. Мой партнер отредактировал код. Пожалуйста, посмотрите сценарий. Любой другой способ сохранения переменной «score» для parse.com также может быть предложено. Спасибо.

2. @ejay_francisco , это parse.com сценарий

3. Привет, я ранее обновил свой код в своем ответе. Пожалуйста, посмотрите измененный код.

Ответ №1:

С помощью этого кода:

 <!DOCTYPE html>
<html>
    <head>
        <meta content="text/html; charset=UTF-8" http-equiv="Content-Type" />
        <title>Test</title>
        <script src="first.js" type="text/javascript"></script>
    </head>
    <body><script type="text/javascript">console . log ( { foo : score } );</script></body>
</html>
  

и файл с именем: «first.js » содержание:

 var score = 5;
  

Я получаю в консоли:

 Object { foo: 5 }
  

Убедитесь, что:

  1. Ваш синтаксис HTML5 / CSS3 / JavaScipt допустим.
  2. Переменная score находится в глобальной области видимости.
  3. Файл с именем: «first.js » загружается перед вашим тегом скрипта, а переменная score объявляется и устанавливается перед тем, как вы ее используете.

Вы также можете дождаться переменной, используя этот код:

 <!DOCTYPE html>
<html>
    <head>
        <meta content="text/html; charset=UTF-8" http-equiv="Content-Type" />
        <title>Test</title>
    </head>
    <body>
        <script type="text/javascript">
            function logScore () { console . log ( { foo : score } ); }
            var interval = setInterval ( function ()
            {
                if ( typeof score !== "undefined" ) // if is declared use variable named: "score" and exit interval
                {
                    logScore ();
                    clearInterval ( interval );
                }
            }, 1000 ); // wait one second ...
        </script>
        <script type="text/javascript">var score = 5; /* score loaded after interval */ </script>
    </body>
</html>
  

Обновить:

 <!DOCTYPE html>
<html>
    <head>
        <meta content="text/html; charset=UTF-8" http-equiv="Content-Type" />
        <title>Test</title>
    </head>
    <body>
        <button onclick="giveit ();">Test your function here ...</button>
        <script type="text/javascript">
            function giveit ()
            {
                var interval = setInterval ( function ()
                {
                    if ( typeof whatScore === "function" ) // now check if function is declared, use return variable named: "score" and exit interval
                    {
                        var temp = whatScore ();
                        console . log ( { foo : temp } ); // log: Object { foo: 5 }
                        /* your code here */
                        clearInterval ( interval );
                    }
                }, 1000 ); // wait one second ...
            }
        </script>
        <script type="text/javascript">
            var score = 5; /* set global variable named: "score" - loaded after interval */
            function whatScore ()
            {
                // var score = 5 /* or set local variable named: "score" - loaded after interval */
                return score;
            }
        </script>
    </body>
</html>
  

Комментарии:

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