如果要将 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
暂无评论内容