元素在开发人员工具中显示为已删除,但在页面中仍然可见

Element shows as removed in developer tools, but is still present visually in the page

我有一个 Brightcove 播放器,我想在播放器暂停时将播放按钮更改为暂停按钮。

这是玩家:

<div style=\"position: relative; display: block; max-width: 1515px;\"><div style=\"padding-top: 50.77574047954866%;\"><video id=\"myPlayerID3\" ' +
            ' data-video-id=\"' + data3.videoId + '\" ' +
            ' data-account=\"' + data3.accountId + '\" ' +
            ' data-player=\"' + data3.playerId + '\" ' +
            ' data-embed=\"default\" class=\"video-js\" ' +
            ' controls></video>

这是按钮的样式:

    #myPlayerID3 .vjs-big-play-button {
        display: block;
        background: url(myurl) 25% center/contain no-repeat;
        right:0px;
        left:10%;
        top:68%;
        bottom:0;
        position:absolute;
        border-radius: 0;
        width:10%;
        height: 12%;
    }

这是处理暂停事件的代码:

$(document).ready(function() {
    var artist_video = document.querySelector("#artist_video");
    var artist_video_play_button = artist_video.querySelector(".vjs-big-play-button")
    videojs.getPlayer('myPlayerID3').on('pause',function(){
    artist_video_play_button.style.background = "url(myurl) 25% center/contain no-repeat";
    });

播放器暂停时代码可以正常触发,但会发生以下情况:

暂停按钮出现,但播放按钮没有消失。如果我检查开发者工具中的样式,你可以看到“播放”图片被标记为删除线(背景 属性 of #myPlayerID3),但它在页面中仍然可见:

如果我在开发人员工具中取消选中背景样式的复选框,它就会消失。这是渲染的东西吗?

我试过删除这样的样式

artist_video_play_button.removeAttribute("style");

或者像这样

artist_video_play_button.style.background = null;

但是没用

问题是 brightcove 在页面中转储 HTML 代码时生成了一个按钮,并且该按钮采用 div 的 类(它也充当按钮)因此它的风格。解决方案是完全删除按钮,在 brightcove 生成​​它是 HTML 东西之后,意思是在 $(document).ready(function() =>{})

之后

最后我们决定放弃 brightcove 并切换到 CDN 和简单的 HTML5 video 标签,因为在页面呈现时 brightcove 生成​​ HTML 代码的概念是引入大量自定义问题