如果 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








![表情[ciya]-红穆笔记](https://www.4s5.cn/wp-content/themes/zibll/img/smilies/ciya.gif)
![表情[xia]-红穆笔记](https://www.4s5.cn/wp-content/themes/zibll/img/smilies/xia.gif)


暂无评论内容