通过 JavaScript 动态设置 的 src(或 的 src)后,必须显式调用 load() 方法重新加载媒体资源,否则浏览器不会自动触发加载与播放流程。
通过 javascript 动态设置 `
在 Web 开发中,为 元素动态设置 src 属性后,图像会立即开始加载并渲染,这是
的默认行为;但
✅ 正确做法:修改源地址 + 调用 load() +(可选)play()
以下是一个完整、可靠的实现示例:
<video id="the-video" width="320" height="240" controls><source src="" type="video/mp4">
Your browser does not support the video tag.
</source></video><script src="https://code.jquery.com/jquery-3.6.0.min.js"></script><script>
const videoUrl = 'https://example.com/sample.mp4';
// 方式一:更新 <source> 的 src 并重新加载(推荐用于多格式兼容场景)
$('#the-video source').attr('src', videoUrl);
$('#the-video')[0].load(); // 注意:必须调用原生 DOM 元素的 load()
// 方式二(更简洁):直接设置 <video> 的 src(无需 <source> 嵌套)
// $('#the-video').attr('src', videoUrl).get(0).load();
// 可选:自动播放(注意现代浏览器策略限制)
// $('#the-video')[0].play().catch(e => console.warn('Autoplay prevented:', e));
</script>
⚠️ 关键注意事项
- load() 必须作用于原生 DOM 元素(即 $('#the-video')[0] 或 document.getElementById('the-video')),jQuery 对象本身无 load() 方法(此处易混淆);
- 若使用
标签管理视频源,请确保 type 属性正确(如 type="video/mp4"),否则可能加载失败; - 自动播放(autoplay)受浏览器策略严格限制(需用户交互或媒体静音),建议配合 muted 属性使用;
- 加载完成后可监听 loadeddata 或 canplay 事件,确认资源已就绪:
$('#the-video')[0].addEventListener('canplay', () => { console.log('Video is ready to play'); });
✅ 总结
与 不同,










