如何将youtube iframe转换为字符串?

时间:2015-12-03 12:17:26

标签: javascript

我有一个函数可以为每个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文本中的特定字符,该函数将返回新的视频对象。

我该如何解决这个问题?

3 个答案:

答案 0 :(得分:1)

查看this answer,其中描述了如何将jQuery对象“转换”为其字符串表示形式。在这里,它是根据您的用例量身定制的:

$qb = $this->createQueryBuilder('BaseLog')
->hydrate(true)
 ->field('template_id')->Equals($templateId);
...
return $qb->getQuery(array('timeout' => -1))->execute();

答案 1 :(得分:1)

你不能只是将对象连接到字符串, 你需要得到元素的html,而不是它自己的对象。 您可以使用'outerHTML'函数

获取元素的外部html

MDN - element.outerHTML()

替换

outputHTML += ytPlayer;

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

答案 2 :(得分:-1)

您可以对对象进行字符串化,但我只是出于调试目的。

 JSON.stringify(ytPlayer);