私のページにローカルiFrameを生成する外部スクリプトがあります。 iframeはvideojsプレーヤーをロードしています。Javascriptのミューテーションオブザーバ関数を使用すると、生成されたiFrameのJavaScript関数にどのようにアクセスできますか
iframeにアクセスしてvideojs play()関数を呼び出して、動画の再生を開始したいとします。
唯一の問題は、ロードされるまで親DOMを使用してアクセスできないため、突然変異オブザーバ関数を使用して生成され、ページにロードされたことを確認することです。
正常に動作しましたが、私は単にvideojs関数にアクセスすることができないように見えます。「未定義のプロパティ再生を読み取ることができません」。
var observer = new MutationObserver(function(mutations){
mutations.forEach(function(mutation) {
for (var i = 0; i < mutation.addedNodes.length; i++)
{
//console.log(mutation);
mutation.addedNodes[i].contentWindow.player.play();
}
})
});
追加されたノードは、プレーヤーのインスタンスであるかどうかを確認してください。さもなければあなたのループはクラッシュするでしょう... –
addedNodeがiframeであり、その内部にプレーヤーオブジェクトがあるはずですが、常に未定義として戻ってきます。実際、ページをロードしてコンソールを使用するのを待つと、iframeに直接アクセスしてビデオを再生することができます。 – user3200080