我在项目的head
中包含了viostream api js库,因此我可以在js文件中使用对象viostreamPlayer
:
<head>
...
<script src='https://publish.viostream.com/embed/api'></script>
</head>
我需要在js中调用embed
函数两次而不重新加载页面。但是,第二次使用viostreamPlayer
会导致一些问题。
因此,我想在第二次使用之前重新加载api库。确保viostreamPlayer
对象新鲜且可以使用。
更多详情:
我使用backbone.js
加载页面中的视频视图,在js加载的另一个视频视图之后,我应该更新视频内容。这就是为什么我需要两次调用embed
函数,即加载另一个视频。新视频已成功嵌入,但所有事件处理程序均失败。按js加载页面无法重新加载head
。
使用on
调用viostreamPlayer
方法添加事件处理程序:
viostreamPlayer.on('play', function(){})
但是当我嵌入第二个视频时,它失去了工作。这就是为什么我在调用viostreamPlayer
函数之前寻找确保embed
新鲜的方法。
文档:https://help.viostream.com/hc/en-us/articles/223291607-Embedding-and-using-the-Player-API
干杯
更新
ViostreamPlayer已更新api,因此错误不再存在。
答案 0 :(得分:0)
如果您使用的是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);