Vuejs 2:如何在 DOM 中动态包含(并运行)脚本标记 javascript 文件?

Spl*_*en- 5 html ajax jwplayer vue.js vuejs2

我正在使用 Vuejs,我需要动态地在 DOM 中插入脚本标签,以这种方式嵌入 JWPlayer 视频:

<body>
 <!-- HTML content -->
 <script src="//content.jwplatform.com/players/KZVKrkFS-RcvCLj33.js"></script>
 <!-- More HTML content -->
 <script src="//content.jwplatform.com/players/ANOTHER-ID-ANOTHER-PLAYERID.js"></script>
</body>
Run Code Online (Sandbox Code Playgroud)

我使用没有结果:v-html指令来呈现 html 标签。以及v-bind:src但都不执行代码。我找到了这个解决方案,但它也不起作用:How to add external JS scripts to VueJS Components

我使用了这个解决方案,但脚本标签(每个视频一个)必须插入正文(而不是头部):它们应该创建 div 标签容器并嵌入视频。问题在于嵌入的 JWPlayer 文件包含一个 document.write() 语句。浏览器控制台说:“从异步加载的外部脚本调用 document.write() 被忽略了。”

有没有办法实现这一目标?

Dec*_*oon 4

您提供的链接应该有效。

您可能只需要等待脚本加载即可使用 JWPlayer。

const script = document.createElement('script')

script.onload = () => {
  // Now you can use JWPlayer in here
}

script.src = '//content.jwplatform.com/players/MEDIAID-PLAYERID.js'
document.head.appendChild(script)
Run Code Online (Sandbox Code Playgroud)

还要确保您只对第一个需要它的组件执行此操作一次,从那时起 JWPlayer 将被加载,您可以使用它而无需插入另一个脚本标签。