修改视频元素的outerHTML而不破坏视频

我正在开发一个 Firefox 扩展,用于向视频元素添加叠加层。我使用https://www.w3schools.com/html/mov_bbb.mp4作为一个单独的示例进行测试。但是,如果我说:

$0.outerHTML = $0.outerHTML;

在控制台中,视频停止播放并消失,只留下盒子阴影。请注意,我在常规网页上没有遇到此行为。我在 Chrome 中也没有遇到这种行为。

我想添加我的 UI 元素,但我找不到解决方法。


慕哥9229398
浏览 72回答 1
1回答

慕丝7291255

目前尚不清楚您想对视频本身做什么。但是,我首先会尝试摆脱 CSS。如果您确实想撕下视频,然后将其包装在您自己的 HTML 中并将其放回原来的位置,您可以这样做:// Get reference to the video elementconst videoElement = document.getElementsByTagName('video')[0];// Clone the elementconst videoClone = videoElement.cloneNode(true);// Create your new containerconst videoContainer = document.createElement('div');// Do what you want with the new containerconst someHeading = document.createElement('h1');someHeading.innerText = 'This is a video';// Append stuff to the new containervideoContainer.append(someHeading);// Append the cloned video to the new containervideoContainer.append(videoClone);// Remove the old videovideoElement.remove();// Append your new video container with cloned videodocument.body.append(videoContainer);<video width="320" height="240" controls>&nbsp; <source src="https://www.w3schools.com/html/mov_bbb.mp4" type="video/mp4">&nbsp; Your browser does not support the video tag.</video>设置outerHTML只会覆盖 HTML。如果您想看到差异,您可以尝试 和 的设置innerHTML,outerHTML但就您而言,结果可能相同。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Html5