【问题标题】:Combining two code snippets? Convert user input Youtube url to embed url and then replace iframe src with converted url结合两个代码片段?将用户输入的 Youtube url 转换为嵌入 url,然后将 iframe src 替换为转换后的 url
【发布时间】:2014-01-21 11:37:10
【问题描述】:

我希望用户将他们的 youtube 网址复制并粘贴到输入字段中,单击提交按钮,然后在输入字段上方加载该视频。但是,非嵌入的 youtube 网址在 iframe 中不起作用,因此需要使用此正则表达式进行转换。

我为正则表达式找到的代码:http://jsfiddle.net/88Ms2/296/

此代码适用于两个标签之间的 html,但我想根据用户输入更新 iframe 的 src attr。

我能够使用此脚本将输入值转换为 iframe src,但它使用的是嵌入链接,而不是浏览器顶部的 url。

function getVid(){
    document.getElementById("vidSrc").src = document.getElementById("txtSrc").value;
    return false;
}

我需要以某种方式将两者结合起来,以便当用户将 youtube url 粘贴到文本字段中时,该 url 将转换为带有正则表达式的嵌入代码(如果有必要),然后用该输入替换 iframe src价值。

非常感谢您的任何回复。我是新手,非常感谢这个网站。

【问题讨论】:

    标签: javascript jquery regex iframe youtube


    【解决方案1】:

    使用相同的正则表达式,它看起来像这样:(Updated example)

    $('input[type=submit]').click(function () {
        function generate() {
            var input = $('#user_input').val();
            return input.replace(/(?:http:\/\/)?(?:www\.)?(?:youtube\.com|youtu\.be)\/(?:watch\?v=)?(.+)/g, '<iframe width="420" height="345" src="http://www.youtube.com/embed/$1" frameborder="0" allowfullscreen></iframe>');
        }
        $('#video').html(generate());
    });
    

    或者,这是另一种使用纯 JavaScript 的方法:(example)

    document.getElementById('element').onclick = function() {
        function generate() {
            var input = document.getElementById('user_input').value;
            return input.replace(/(?:http:\/\/)?(?:www\.)?(?:youtube\.com|youtu\.be)\/(?:watch\?v=)?(.+)/g, '<iframe width="420" height="345" src="http://www.youtube.com/embed/$1" frameborder="0" allowfullscreen></iframe>');
        }
        document.getElementById('video').innerHTML = generate();
    }
    

    【讨论】:

    • 这很好用!我最终使用了 jQuery 代码,并将 iframe 的高度和宽度更改为 100%,因为我将它合并到 Bootstrap 中,因此它具有响应性。非常感谢
    猜你喜欢
    • 2013-03-27
    • 2018-08-13
    • 2012-08-03
    • 2015-03-02
    • 2013-10-15
    • 2020-02-16
    • 2012-01-02
    • 2014-01-21
    • 2012-11-14
    相关资源
    最近更新 更多