javascript - 如何在不重新加载页面的情况下重新加载外部 JavaScript 库

标签 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加载页面中的视频 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/

相关文章:

javascript - 从给定简单模板的示例字符串中提取值

javascript - 使用replace()从存储在数组中的每个链接中获取id?

javascript - jQuery .load(或 $.ajax)获取和设置页面标题?

javascript - Backbone.js - 过滤集合与多个集合

javascript - 从事件中获取数据属性

javascript - 从 ViewModel 访问 $parent

javascript - OpenLayers:从 TileImage 源创建 NDVI 栅格

javascript - 更改 html 输入字段中的 Placeholder 属性

javascript - 按钮不显示

javascript - 设计主干并将其连接到 Ruby 服务器