【发布时间】:2020-09-12 09:24:59
【问题描述】:
如何在 Vue.js 应用中动态加载 JavaScript 脚本?
这是一个幼稚的解决方案:
<script async v-bind:src="srcUrl"></script>
<!--<script async src="https://cse.google.com/cse.js?cx=007968012720720263530:10z7awj2l37"></script>-->
但第一行不会加载脚本(它不会将script 元素添加到 HTML)。
第二行有效。第二行相同,只是将 app 变量替换为纯文本 (srcUrl => https://cse.google.com/cse.js?cx=007968012720720263530:10z7awj2l37)。
我的错在哪里?
供参考的完整演示(它应该在空白页面上加载谷歌自定义搜索引擎):
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<script src="https://cdn.jsdelivr.net/npm/vue@2.6.11"></script>
</head>
<body>
<div id="load-script">
<div>{{ srcUrl }}</div>
<div class="gcse-searchbox"></div>
<div class="gcse-searchresults"></div>
<script async v-bind:src="srcUrl"></script>
<!--<script async src="https://cse.google.com/cse.js?cx=007968012720720263530:10z7awj2l37"></script>-->
</div>
<script>
new Vue({
el: '#load-script',
data: {
srcUrl: "https://cse.google.com/cse.js?cx=007968012720720263530:10z7awj2l37"
}
});
</script>
</body>
</html>
我找到了相关问题,但它们似乎并没有准确描述这种情况:
【问题讨论】:
-
你试过我下面的答案了吗?
-
@terrymorse 我做到了,特里。如果有人建议使用绑定的原生 Vue.js 解决方案,让我们稍等片刻。当脚本依赖于用户操作时,动态添加和删除它是 Vue.js 可能会处理的事情。
标签: javascript html vue.js