簡単な 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")