Uncaught TypeError: document.currentScript is null

如果 document.currentScript 返回 null,这通常意味着 JavaScript 文件不是通过 <script> 标签直接引入的,而是通过其他方式加载的,例如使用模块加载器(如 RequireJS)或者通过 JavaScript 动态创建 <script> 元素。

在这种情况下,你可以尝试以下解决方法:

  1. 直接传递变量:如果使用其他方式加载 JavaScript 文件,你可以直接在加载文件的地方将变量传递给 JavaScript 文件中的函数或对象。例如,如果使用模块加载器,你可以将变量作为参数传递给模块中的函数。

  2. 等待 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
喜欢就支持一下吧
点赞5
相关推荐
评论 抢沙发

请登录后发表评论

    暂无评论内容