如果要將 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());
});
});這三種方法各有優缺點,你可以根據具體情況選擇最適合的方式。