Youtube暂停所有相同类的iframe

时间:2013-01-28 19:47:49

标签: jquery iframe youtube-api

我想通过一个简单的onclick暂停所有youtube电影(独立于它的ID)。我已经为可以使用某个ID的代码创建了一个jsfiddle。但是,由于我无法指定唯一ID,因此我希望能够暂停所有youtube iframe。然而,iframe确实有一个类。 http://jsfiddle.net/4bPAJ/3/ 任何正确方向的帮助都表示赞赏:)

干杯, 阿德南

使用Javascript:

function callPlayer(e, t, n) {
    function o(e, t) {
        var n = e ? window.addEventListener : window.removeEventListener;
        n ? n("message", t, !1) : (e ? window.attachEvent : window.detachEvent)("onmessage", t)
    }
    if (window.jQuery && e instanceof jQuery) e = e.get(0).id;
    var r = document.getElementById(e);
    if (r && r.tagName.toUpperCase() != "IFRAME") {
        r = r.getElementsByTagName("iframe")[0]
    }
    if (!callPlayer.queue) callPlayer.queue = {};
    var i = callPlayer.queue[e],
        s = document.readyState == "complete";
    if (s && !r) {
        window.console && console.log("callPlayer: Frame not found; id=" + e);
        if (i) clearInterval(i.poller)
    } else if (t === "listening") {
        if (r && r.contentWindow) {
            t = '{"event":"listening","id":' + JSON.stringify("" + e) + "}";
            r.contentWindow.postMessage(t, "*")
        }
    } else if (!s || r && (!r.contentWindow || i && !i.ready)) {
        if (!i) i = callPlayer.queue[e] = [];
        i.push([t, n]);
        if (!("poller" in i)) {
            i.poller = setInterval(function () {
                callPlayer(e, "listening")
            }, 250);
            o(1, function u(t) {
                var n = JSON.parse(t.data);
                if (n && n.id == e && n.event == "onReady") {
                    clearInterval(i.poller);
                    i.ready = true;
                    o(0, u);
                    while (n = i.shift()) {
                        callPlayer(e, n[0], n[1])
                    }
                }
            }, false)
        }
    } else if (r && r.contentWindow) {
        if (t.call) return t();
        r.contentWindow.postMessage(JSON.stringify({
            event: "command",
            func: t,
            args: n || [],
            id: e
        }), "*")
    }
}
callPlayer("whateverID", "playVideo")

1 个答案:

答案 0 :(得分:1)

试试这个:

$(document).ready(function () {
    var i = 0;
    $(".youtubeplayer").each(function () {
        $(this).attr("id", "youtubeplayer" + i);
        callPlayer("youtubeplayer" + i, "playVideo");
        i++;
    });
});

这将为每个帧添加一个id,并在后面调用该函数。