You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Vue.js中如何将URL传入iFrame?零基础用户实现YouTube链接绑定需求问询

当然可以实现!你的思路没问题,只是模板绑定语法有个小细节需要调整

你现在的代码方向是对的,只是在<iframe>的src属性绑定上犯了Vue新手常见的小错误——Vue中要绑定data里的变量到DOM属性上,必须用v-bind指令(或者简写:),直接写src=this.link是原生JS的写法,在Vue模板里不生效。

咱们一步步修正并验证功能:

步骤1:修正iframe的src绑定语法

把模板里的src=this.link改成:src="link",这样Vue才会把data里的link值正确渲染到iframe的src属性上:

<iframe width="800" height="230" :src="link"></iframe>

步骤2:验证切换链接的功能(可选)

如果你的OnSelectCam方法是用来切换视频的,可以加个测试按钮来触发它,确保能正常更新链接:

<button @click="OnSelectCam('https://www.youtube.com/embed/dQw4w9WgXcQ')">切换到测试视频</button>

步骤3:确认YouTube链接格式

要注意必须使用YouTube的嵌入格式链接(https://www.youtube.com/embed/视频ID),不能用普通的观看链接(比如https://www.youtube.com/watch?v=xxx),否则iframe会加载失败。

修正后的完整代码

<template>
  <div>
    <iframe width="800" height="230" :src="link"></iframe>
    <!-- 测试用的切换按钮 -->
    <button @click="OnSelectCam('https://www.youtube.com/embed/dQw4w9WgXcQ')">切换视频</button>
  </div>
</template>

<script>
import axios from "axios";
export default{
  name:"Camera",
  data(){
    return{
      link:"https://www.youtube.com/embed/08Xmfi1QIxc",
    };
  },
  methods:{
    OnSelectCam(link){
      this.link = link;
    },
  },
  // 如果之后需要用axios远程获取链接,可以加在这里
  // mounted() {
  //   axios.get('/your-api-url')
  //     .then(res => {
  //       this.link = res.data.videoLink;
  //     })
  //     .catch(err => console.log(err));
  // }
}
</script>

<style scoped>
</style>

现在运行代码,你应该能看到初始的YouTube视频正常加载,点击按钮也能切换到新的视频啦。如果之后需要通过axios获取远程链接,直接在mounted钩子(或者其他合适的生命周期)里发起请求,把返回的链接赋值给this.link就可以了。

内容的提问来源于stack exchange,提问作者Jim Gallagher

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.30 23:03:15