php中,如何将变量传递到js文件里去?(js文件里面的代码如何获取外面的变量?)

如果要将 PHP 中的变量传递到 JavaScript 文件中,你有几种选择:

内联 JavaScript:

可以在 HTML 文件中直接在 JavaScript 代码中使用 PHP 变量,就像你在示例代码中所做的那样。这样可以让 PHP 生成 JavaScript 代码时包含 PHP 变量的值。但是这种方法会将 PHP 代码和 JavaScript 代码耦合在一起,可能不够清晰和易于维护。

var videoMd5 = '<?= $videoMd5 ?>';

使用全局变量:

你可以将 PHP 变量赋值给 JavaScript 的全局变量,在 JavaScript 文件中直接使用这个全局变量。这种方法需要在 HTML 文件中先定义这个全局变量,并确保 JavaScript 文件在使用之前已经加载了。

在 HTML 文件中:

<script>
    var videoMd5 = '<?= $videoMd5 ?>';
</script>
<script src="/path/to/video_player.js"></script>

在 JavaScript 文件中:

document.addEventListener('DOMContentLoaded', function() {
    var player = videojs('my-video');
    
    // 使用全局变量 videoMd5
    var progress = localStorage.getItem('video_progress_' + videoMd5);
    if (progress) {
        player.currentTime(progress);
    }
    
    player.on('timeupdate', function() {
        localStorage.setItem('video_progress_' + videoMd5, player.currentTime());
    });
});

通过 HTML 属性传递:

你可以在 HTML 标签中使用自定义属性将 PHP 变量的值传递给 JavaScript。例如,在 <script> 标签中的 data-* 属性中设置 PHP 变量的值,然后在 JavaScript 文件中通过 getAttribute() 方法获取这个值。

在 HTML 文件中:

<script src="/path/to/video_player.js" data-videomd5="<?= $videoMd5 ?>"></script>

在 JavaScript 文件中:

document.addEventListener('DOMContentLoaded', function() {
    var player = videojs('my-video');
    
    // 从 data-videomd5 属性获取 videoMd5 的值
    var videoMd5 = document.currentScript.getAttribute('data-videomd5');
    
    var progress = localStorage.getItem('video_progress_' + videoMd5);
    if (progress) {
        player.currentTime(progress);
    }
    
    player.on('timeupdate', function() {
        localStorage.setItem('video_progress_' + videoMd5, player.currentTime());
    });
});

这三种方法各有优缺点,你可以根据具体情况选择最适合的方式。

© 版权声明
THE END
喜欢就支持一下吧
点赞6
评论 抢沙发

请登录后发表评论

    暂无评论内容