如果 document.currentScript
返回 null
,这通常意味着 JavaScript 文件不是通过 <script>
标签直接引入的,而是通过其他方式加载的,例如使用模块加载器(如 RequireJS)或者通过 JavaScript 动态创建 <script>
元素。
在这种情况下,你可以尝试以下解决方法:
-
直接传递变量:如果使用其他方式加载 JavaScript 文件,你可以直接在加载文件的地方将变量传递给 JavaScript 文件中的函数或对象。例如,如果使用模块加载器,你可以将变量作为参数传递给模块中的函数。
-
等待 DOMContentLoaded 事件触发后再执行 JavaScript 代码:在
DOMContentLoaded
事件触发后,可以保证整个文档已经解析完毕,包括 JavaScript 文件的加载。你可以在DOMContentLoaded
事件的处理程序中执行 JavaScript 代码,而不是依赖于document.currentScript
。
例如:
document.addEventListener('DOMContentLoaded', function() {
var player = videojs('my-video');
// 获取 videoMd5 值的方式可能需要调整,具体根据你的情况来决定
var videoMd5 = '<?= $videoMd5 ?>';
var progress = localStorage.getItem('video_progress_' + videoMd5);
if (progress) {
player.currentTime(progress);
}
player.on('timeupdate', function() {
localStorage.setItem('video_progress_' + videoMd5, player.currentTime());
});
});
确保在 DOMContentLoaded
事件监听器中执行 JavaScript 代码可以解决在某些情况下 document.currentScript
返回 null
的问题。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
暂无评论内容