videojs javascript动态添加

问题描述

我需要通过JavaScript动态添加videojs播放器。问题是,将播放器添加页面后,它不起作用。如果手动放置,它会完美工作,但是如果JS添加了播放器的代码,它将无法正常工作。我想其中应该有一种,但是找不到如何做。请帮忙

<html lang="en">
<head>
    <Meta charset="utf-8">
    <title>Page1</title>
</head>


<style>
    /* * The body style is just for the
 * background color of the codepen.
 * Do not include in your code.
 */
    body {
        background-color: #111;
        color: #fff;
    }

    /*
 * Styles essential to the sample
 * are below
 */
    .video-js {
        width: 640px;
        height: 360px;
    }

</style>

<body style="margin: 0px;">
    <button onclick="addplayer()">Add Player</button>
    <div id="content"></div>
    <div>
        <div style="max-width: 960px;">
            <video-js data-account="81247437001" data-player="bGqjsTYP" data-embed="default" controls="" data-video-id="6141765796001" data-playlist-id="" data-application-id="" class="vjs-fluid"></video-js>
        </div>
        <script src="https://players.brightcove.net/81247437001/bGqjsTYP_default/index.min.js"></script>
    </div>

    <script>
        var cnt = 0;

        function addplayer() {
            var jsc = "script";
            var content =
                `
        <div style="max-width: 960px;">
            <video-js id="pl_${cnt}" data-account="81247437001" data-player="bGqjsTYP" data-embed="default" controls="" data-video-id="6141765796001" data-playlist-id="" data-application-id="" class="vjs-fluid"></video-js>
        </div>
        <${jsc} src="https://players.brightcove.net/81247437001/bGqjsTYP_default/index.min.js"></${jsc}>
    `
            document.getElementById("content").innerHTML += content;
            cnt++;
        }

    </script>

</body>

</html>

解决方法

不必每次都包含脚本,只需要一次即可。添加元素后,使用bc()方法对其进行初始化。例如

    function addPlayer() {
        var jsc = "script";
        var content =
            `
    <div style="max-width: 960px;">
        <video-js id="pl_${cnt}" data-account="81247437001" data-player="bGqjsTYP" data-embed="default" controls="" data-video-id="6141765796001" data-playlist-id="" data-application-id="" class="vjs-fluid"></video-js>
    </div>
`
        document.getElementById("content").innerHTML += content;
      bc(`pl_${cnt}`);
        cnt++;
    }

https://player.support.brightcove.com/code-samples/brightcove-player-sample-loading-player-dynamically.html