我在项目的 head
中包含了 viostream api js 库,因此我可以在 js 文件中使用对象 viostreamPlayer
:
<head>
...
<script src='https://publish.viostream.com/embed/api'></script>
</head>
我需要在js中调用embed
函数两次并且无需重新加载页面。但是,第二次使用viostreamPlayer
会出现一些问题。
因此,我想在第二次使用之前重新加载api库。确保 viostreamPlayer
对象是最新的并且可以使用。
更多详细信息:
我使用backbone.js
加载页面中的视频 View ,在js加载另一个视频 View 后,我应该更新视频内容。这就是为什么我需要调用 embed
函数两次,即加载另一个视频。新视频已成功嵌入,但所有事件处理程序均失败。 js加载页面无法重新加载head
。
通过使用 viostreamPlayer
调用 on
方法来添加事件处理程序:
viostreamPlayer.on('play', function(){})
但是当我嵌入第二个视频时它就不起作用了。这就是为什么我正在寻找在调用 embed
函数之前确保 viostreamPlayer
新鲜的方法。
文档:https://help.viostream.com/hc/en-us/articles/223291607-Embedding-and-using-the-Player-API
干杯
更新
ViostreamPlayer 已更新 api,因此错误不再存在。
最佳答案
如果您使用 jQuery,则可以使用 $.getScript()
重新加载。
示例:
setTimeout(() => {
$.getScript("https://publish.viostream.com/embed/api?1")
.done(function (script, textStatus) {
console.log(textStatus);
})
.fail(function (jqxhr, settings, exception) {
console.log.("Triggered ajaxError handler.");
});
}, 1000);
关于javascript - 如何在不重新加载页面的情况下重新加载外部 JavaScript 库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45318027/