javascript - 如何使用 javascript/jquery 根据 <select> 值更改 iframe 的 src 属性?

标签 javascript jquery html iframe

我有一个 >20MB(太大)的网页,问题是每个 YouTube 视频大约 500 KB!我想使用 HTML5 选择选项来列出 30 多个视频。该值是 youtube 视频 ID。然后用户从下拉选项中选择所需的视频。然后视频加载到 iframe 中。

<form>
    <select id="dynamic_select">
        <option value="" selected>Pick a Key and Peele youtube video</option>
        <option value="pSDTmJtE-Bc">Little Homie</option>
        <option value="Dd7FixvoKBw">Substitute Teacher</option>
        <option value="iGAMbNKcN1U">Fronthand Backhand</option>
    </select>
</form>

这是工作"template",但我想用选定的选项值替换 src 字符串中的“nlD9JYP8u5E”。这能做到吗?

<article>
    <iframe src="https://www.youtube.com/embed/nlD9JYP8u5E?rel=0&amp;showinfo=0"></iframe>
</article>

最佳答案

.replace() 中使用正则表达式来更改 iframe 的 src 属性。在 jquery 中,我在 change select 元素的事件监听器中使用了元素的 .attr() 更改属性

$("#dynamic_select").change(function(){
    var val = $(this).val();
    $("iframe").attr("src", function(i, a){
        return a.replace(/(?<=embed\/)[^?]+/, val);
    });
});

$("#dynamic_select").change(function(){
    var val = $(this).val();
    $("iframe").attr("src", function(i, a){
        return a.replace(/(?<=embed\/)[^?]+/, val);
    });
    console.log($("iframe").attr("src"));
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form>
  <select id="dynamic_select">
    <option value="" selected>Pick a Key and Peele youtube video</option>
    <option value="pSDTmJtE-Bc">Little Homie</option>
    <option value="Dd7FixvoKBw">Substitute Teacher</option>
    <option value="iGAMbNKcN1U">Fronthand Backhand</option>
  </select>
</form>
<article>
  <iframe src="https://www.youtube.com/embed/nlD9JYP8u5E?rel=0&amp;showinfo=0"> 
</iframe>
</article>

关于javascript - 如何使用 javascript/jquery 根据 <select> 值更改 iframe 的 src 属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52464011/

相关文章:

javascript - 将 .NET Core 环境传递给 React.JS 应用程序

javascript - 无法从元标记访问数据

css - 样式 lower 和 upper 填充 HTML5 range input

html - 如何阻止 <nav> 在中间 split

java - 使用 Ext JS 作为基于 Java/Spring/Hibernate 的 Web 应用程序的一部分的最佳方法是什么?

javascript - 像 alert() 函数一样停止页面执行

javascript - JQuery:在 cakePHP 中验证失败后如何保存动态添加的表单输入

javascript - 在有 span 的按钮组中添加父 div

jquery - 如何从 jQuery 对象中获取字符串表示形式?

javascript - Bootstrap Scrollspy - 如何获取滚动列表的下拉列表?