如何将youtube iframe转换为字符串

How to convert youtube iframe to string?

本文关键字:转换 字符串 iframe youtube      更新时间:2023-09-26

我有一个函数,它将为每个JSON对象创建一个新的Youtube iframe。

var createYTPlayer = function () {
        var ytVidPlayer = $("<iframe/>");
        var videoId = raw_content.media[counter].video;
        ytVidPlayer.attr({
            height: 315,
            width: 560,
            src: 'https://www.youtube.com/embed/' + videoId,
            frameborder: 0
        });
        return ytVidPlayer;
    };

video函数从createYTPlayer函数中获取返回的YT播放器对象。

var video = function () {
        // Development
        console.log('shortcodeController.video');
        var outputHTML;
        var ytPlayer;
        if (raw_content.media[counter].video != undefined) {
            outputHTML = '<div class="video">';
            // Youtube object
            ytPlayer = createYTPlayer();
            console.log('youtube player: ', ytPlayer);
            outputHTML += ytPlayer;
            outputHTML +='</div>';
            console.log(outputHTML);
            return outputHTML;
        };
    };

然后它应该将对象转换为字符串,因为我在字符串中收到的错误为[object Object]。我将把它添加到一个包含文本的JSON对象中。然后,它将用返回新视频对象的函数video的输出替换JSON文本中的特定字符。

我该如何解决这个问题?

看看这个答案,它描述了如何将jQuery对象"转换"为其字符串表示。它就在这里,根据您的用例量身定制:
outputHTML += ytPlayer.prop('outerHTML');

不能只将对象连接到字符串,您需要获取元素的html,而不是对象本身。您可以使用"outerHTML"函数获取元素的外部html

MDN-element.outerHTML()

更换

outputHTML += ytPlayer;

带有

outputHTML += $(ytPlayer)[0].outerHTML;

您可以字符串化对象,但我想这只是为了调试目的。

 JSON.stringify(ytPlayer);