【问题标题】:Javascript global scope variables accessed later in a script tag with src稍后在带有 src 的脚本标记中访问的 Javascript 全局范围变量
【发布时间】:2020-03-31 12:15:11
【问题描述】:

我希望能够将变量从 php 传递到我的 javascript 代码中,以保存给定用户的高分。我通过在页面顶部声明成功地做到了这一点:

<?php
    session_start();


    $bricks = $_SESSION["bricks"];
    require 'includes/dbh.inc.php';
    require 'save.php';


?>

SESSION['bricks'] 是数据库中的高分。 php 代码中 html 代码的结尾 我将整个游戏都写在一个脚本标签中。在游戏中

this.highScore = "<?php echo $bricks?>";

但这又长又乱。假设我想用&lt;script src="myGame.js"&gt;&lt;/script&gt; 替换长脚本标记,这将是有问题的,因为该文件将不再是一个 php 文件并且将无法获取会话变量砖块。

当使用全局范围时,我可以从会话变量中获取变量 highscore

<script> var highScore = <?php echo $bricks;?>;</script>

然后:

<script>console.log(highScore)</script>

但如果我将第二个脚本标记链接到源:

<script src="myGame.js"></script>

我将无法访问 myGame.js 中的变量 highScore。有没有办法将页面顶部的脚本标签中的变量传递到具有 src 属性的脚本标签中,并在链接的 javascript 文档中访问该变量?有一种解决方法,但我想知道我是否可以通过这种方式使其更易于管理。

【问题讨论】:

  • “这将是有问题的,因为该文件将不再是一个 php 文件” - 那么 make 它就是一个。 myGame.php,让它首先为 JavaScript 资源输出正确的 Content-Type 标头,然后是实际的 JS 代码 - 动态创建,但是你喜欢...... stackoverflow.com/questions/531311/…

标签: javascript php global-variables global-scope


【解决方案1】:

首先让你的js代码稳定:

var highScore = parseInt("<?php echo $bricks;?>");

在您的 javascript object 中尝试将全局变量 highScore 设置为对象的属性:

this.highScore = highScore;

【讨论】:

    猜你喜欢
    • 2016-08-13
    • 1970-01-01
    • 2015-09-30
    • 2014-05-14
    • 2012-07-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多