Javascript 如何加载cdn并访问它';Vue中的对象是什么?

Javascript 如何加载cdn并访问它';Vue中的对象是什么?,javascript,vue.js,cdn,nuxt.js,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>

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

通常代码非常简单:

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

<script>

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

</script>

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

上面的示例给出了错误:
ExampleObj未定义
,但是如果我尝试访问
ExampleObj
,它会在开发人员控制台上显示,并且
start
方法起作用。

您应该等待脚本加载:

const script = document.createElement('script')

const start = document.createElement('script')

start.text = `console.log('jquery object', $('#app').text())`

script.onload = () => {
    document.body.appendChild(start)
}

script.setAttribute('src', 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js')

document.body.appendChild(script)
您应该在onload事件之后设置src属性

从这个问题:

下面是我制作的一个工作JSFIDLE:

遵循以下步骤:

  • 将CDN脚本添加到vue.js脚本上方的index.html中。我会把它放在头尾标签前面:
  • 
    

  • 如果您使用webpack-添加到,以便可以将其导入到vue组件中
  • 如果不使用webpack,请在mounted()函数中使用window.ExampleObject访问JS对象

  • 听起来像是计时:脚本标记被附加,但加载它们需要一些时间。您可以尝试在它们上使用
    onload
    ,以表示准备就绪。如果确实使用nuxt,则使用文档中注明的外部资源,但请考虑获取库并将其放在本地。
    const script = document.createElement('script')
    
    const start = document.createElement('script')
    
    start.text = `console.log('jquery object', $('#app').text())`
    
    script.onload = () => {
        document.body.appendChild(start)
    }
    
    script.setAttribute('src', 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js')
    
    document.body.appendChild(script)