1

DOM からビデオ URL を取得する必要がある Google Chrome 拡張機能があります。

var videolink = document.getElementsByTagName('video')[0].attributes.getNamedItem('src').nodeValue;

ページがロードされた後、ビデオ要素が JavaScript によって作成されていることがわかりました。そこで、上記のコンテンツ スクリプトを「document_idle」フェーズで実行してみます。しかし、それでもビデオ要素は初期化されていないようです。

ビデオ要素を初期化してからコンテンツ スクリプトを実行する方法はありますか?

4

2 に答える 2

1

JavaScript によって作成/ロードされた要素を処理する最も簡単で堅牢な方法は、それらをポーリングすることです。

var waitForVideo = setInterval (checkForElement, 150);

function checkForElement () {
    var videoElem       = document.getElementsByTagName ('video');
    if (videoElem.length) {
        clearInterval (waitForVideo);
        var videolink   = videoElem[0].getAttribute ('src');
        // DO WHATEVER, WITH videolink HERE.
    }
}

または、まったく新しいDOM Mutation Observersを試すこともできますが、これらは Firefox と Chrome に追加されたばかりであり、このインスタンスではおそらくやり過ぎです。

于 2012-07-31T15:44:57.307 に答える
0

onLoad=yourFunction()拡張機能のページを編集できる場合は、要素の準備ができたら関数を呼び出すように、要素に属性を追加できるはずです。

于 2013-03-04T09:45:41.200 に答える