如何重新加载外部JavaScript库而不重新加载页面

时间:2017-07-26 05:18:26

标签: javascript jquery backbone.js

我在项目的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,因此错误不再存在。

1 个答案:

答案 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);