首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >动态加载recaptcha脚本

动态加载recaptcha脚本
EN

Stack Overflow用户
提问于 2017-11-10 05:27:24
回答 1查看 2K关注 0票数 1

我想动态加载脚本,比如recaptcha,因为我只想在Register.Vue / login.Vue组件中加载

代码语言:javascript
复制
<script src="https://www.google.com/recaptcha/api.js?onload=vueRecaptchaApiLoaded&render=explicit" async defer>
</script>

如果我将脚本标记放置在Vue文件中,就会得到以下错误:

代码语言:javascript
复制
  - Templates should only be responsible for mapping the state to the UI. Avoid
placing tags with side-effects in your templates, such as <script>, as they will
 not be parsed.

我如何解决这个问题呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-11-10 05:35:40

在登录Vue页面中添加:

代码语言:javascript
复制
methods: {

  // create 
  createRecaptcha () {
    let script = document.createElement('script')
    script.setAttribute('async', '')
    script.setAttribute('defer', '')
    script.id = 'recaptchaScript'
    script.src = 'https://www.google.com/recaptcha/api.js?onload=vueRecaptchaApiLoaded&render=explicit'
    script.onload = function () {
      document.getElementsByTagName('head')[0].appendChild(script)
    }
  },
  
  // remove
  removeRecaptcha () {
    document.getElementById('recaptchaScript').remove()
  }

},

// your code ...

mounted () {
  this.createRecaptcha()
},

beforeDestroy () {
  this.removeRecaptcha()
}
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47216197

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档