如何更改外部.js文件中的变量数据值?

时间:2017-04-06 20:13:17

标签: javascript php jquery

所以我正在制作一款游戏,而我现在正试图制作一个Level Selector。但是我只希望球员能够在他们击败的水平上进行比赛。 所以我有一个.js文件标有" ELD.js"它包含:

    var Levels = 0;

我并不十分关心(在编程类型方面)。但我希望能够改变" Levels"每次我赢得一个级别的数据值。 每个级别都有自己的html文件,所有级别文件都与" ELD.js"在同一个文件中。文件。

我已经找到了答案,但似乎没有一个符合我的要求。

虽然我在这个问题上(如果我错了,请纠正我),但我可以简单地测试"级别"数据值使用这个权利?

    <script type="text/javascript" src="ELD.js"></script>
    <script>
    if(Levels =< X)
    {
         }
    </script>

X代表一个未定义的数字,我稍后会选择。

1 个答案:

答案 0 :(得分:2)

您可以将javascript文件构建为类,并将该变量分配给类,例如:

class GameLevel {
    constructor (level) {
        this.level = level;
    }

    get_level () {
        return this.level;
    }

    set_level (level) {
        this.level = level;
    }
}

然后在整个游戏中你都有了自己的对象:

var cur_level = 1;
var level = new GameLevel (cur_level);

然后在比赛结束后,你只需致电

level.set_level (++cur_level)

我相信你甚至可以说level.level = cur_level + 1;

修改

还要通过你,因为你想将你的javascript数据传递给另一个html文件 还有一种方法可以解决这个问题。你可以使用这个逻辑:

  1. 在新标签页中打开新关卡
  2. 传递数据
  3. 关闭当前窗口并关注新打开的窗口
  4. 这就像一种奇怪的方式,但我相信它可以工作:)这样做你运行以下代码:

    var newLevel        = window.open (<URL TO HTML FILE>, '_blank');
    
    // passing thejavascript data
    newLevel.new_level  = level.get_level ;  // This is the data to pass or you can use the variable you had declared
    
    // focus on new window
    newLevel.focus ();
    
    // close current window
    window.close ();
    

    修改

    然后在您的所有html文件中,您可以使用window.new_level获取新级别数据的值 当窗口打开时,它将具有您设置的值。