javascript - 如何在 Vue 中加载 cdn 并访问它的对象?

标签 javascript vue.js cdn nuxt.js

我必须加载一个外部 javascript 文件才能访问某个对象。

通常代码很简单:

<script src='https://example.com/example.js'></script>

<script>

  var instance = new ExampleObj.start({ container: 'element-id' });

</script>

<div id='element-id'></div>

如何在 .vue 文件中完成此操作?

这没有用:

export default {
  ...
  mounted() {
    const script = document.createElement('script')

    script.setAttribute('src', 'https://example.com/example.js')

    const start = document.createElement('script')

    start.text = `var instance = new ExampleObj.start({ container: 'element-id' });`

    document.body.appendChild(script)
    document.body.appendChild(start)
  }
  ...
}

上面的 ^ 示例给出了错误:ExampleObj not defined,但是如果我尝试访问 ExampleObj,它会显示在开发人员控制台上,并带有 start 方法工作。

最佳答案

请按照以下步骤操作:

  1. 在 vue.js 脚本上方的 index.html 中添加 CDN 脚本。我会把它放在头部结束标记之前:

<script src='https://example.com/example.js'></script> </head>

  1. 如果您使用 webpack - 添加到 externals这样你就可以将它导入到你的 vue 组件中。
  2. 如果您不使用 webpack - 在您的 mounted () 函数中使用 window.ExampleObject 访问 JS 对象。

关于javascript - 如何在 Vue 中加载 cdn 并访问它的对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53238481/

相关文章:

javascript - 静态资源转CDN后,google maps在Chrome+Firefox中报错,在Safari中正常 :

javascript - 从模块导入类

javascript - 确定窗口是否在 webkit 中处于事件状态

vue.js - 如何正确禁用 eslint?

vue.js - 验证 : throttle/debounce v-autocomplete

javascript - 从 CDN 或根文件调用 bootstrap 的 css 和 js 文件

javascript - 显示内容未定义

javascript - 如何在客户端绑定(bind)之前对 SAPUI5 OData 进行分组以进行控制?

javascript - 如何限制 v-select 元素的输入长度?

content-management-system - 数据中心的 Amazon S3 替代方案?