0

index.htmlvideo.htmlという 2 つの html ファイルがあります。

video.html には、次のようなコーディングが含まれます。

<div id="video">
<iframe src="http://www.youtube.com/embed/tJFUqjsBGU4?html5=1" width=500 height=500></iframe>
</div>

上記のコードをindex.htmlのvideo.htmlページからクロールしたい

php や .net などのバックエンド コーディングは使用できません

Ajax を使用する方法はありますか?

4

5 に答える 5

1

クロールとおっしゃっていましたので、複数ページの可能性もあると思います。以下は、url の配列からページをロードし、成功したロードを結果に格納します。各ロード (またはのcomplete後に呼び出される)で、remainingUrls (プログレスバーの更新に役立つ可能性があります) を減らし、すべてのページが処理された後にメソッドを呼び出すことができます。successerror(!remainingUrls)

これがやり過ぎの場合は、その$.ajax部分を使用して に置き換えmyUrls[i]video.htmlください。type別のスクリプトが ajax のデフォルトのタイプを POST に変更するケースに遭遇したため、唯一を指定します。php や aspx などの動的ページをロードしている場合、cacheセッションごとにこれを複数回呼び出す場合にも、このプロパティが役立つ場合があります。

    var myUrls = ['video1.html', 'video2.html', 'fail.html'],
        results = [],
        remainingUrls;


    $(document).ready(function () {
        remainingUrls = myUrls.length;
        for (var i = 0, il = myUrls.length; i < il; i++) {
            $.ajax({
                url: myUrls[i],
                type: 'get', // somebody might override ajax defaults
                cache: 'false', // only if you're getting dynamic pages
                success: function (data) {
                    console.log('success');
                    results.push(data);
                },
                error: function () {
                    console.log('fail');
                },
                complete: function() {
                    remainingUrls--;
                    if (!remainingUrls) {
                        // handle completed crawl
                        console.log('done');
                    }
                }
            });
        }
    });
于 2013-06-21T12:58:21.777 に答える
1

確かに、ajax 呼び出しを送信します。

$.ajax({
url: 'video.html',
success: function(data) {
    data=$(data).find('div#video');
   //do something

 }
});
于 2013-06-21T12:47:41.680 に答える