为了访问某个对象,我必须加载一个外部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文件中完成此操作?
这不是work
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方法正在工作。
发布于 2018-11-10 12:27:20
您应该等待加载脚本:
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属性。
从这个问题:试图在脚本标记上触发onload事件
下面是我制作的一个工作jsFiddle:https://jsfiddle.net/jovmypnx/1/
https://stackoverflow.com/questions/53238481
复制相似问题