0

「pic.jpg」を数秒ごとに上書きするウェブカメラがあります。私が抱えている問題は、ウェブカメラが古い画像を上書きしている正確な時間に以下のコードが実行され、画像が壊れることがあります。次に、関数が再び実行されると (ウェブカメラが画像のアップロードを完了した後)、すべてが正常に機能し、画像が表示されます。だから私は壊れた画像が表示されないようにしようとしています。私はjavascript/jqueryが初めてなので、これは多くのレベルで間違っている可能性があります:

<style type="text/css">
#pictest {display:none}
</style>

function updateCams(){
    var camurl = "/pic.jpg?"+new Date().getTime();
    $("#pictest").attr("src", camurl);
    $("#pictest").error(function(){
        /* image was being written. Restart the function and try again */
        updateCams;
    })
    /* I want a success/valid type function to go here and update the visible image only on success*/
    $("#pictest").valid(function(){
        $("#pic").attr("src", camurl);
    })
};
setInterval( "updateCams()", 2000 );

<img src="pic.jpg" width="640" height="480" id="pic" alt="Loading..." />
<img src="pic.jpg" id="pictest" />

とにかく、「有効」機能は機能しません。valid/validate/success と if/else を試しましたが、.error だけが正しく動作します。

4

1 に答える 1

1

アップデート

次のようなプラグインを使用する必要があります: https://github.com/desandro/imagesloaded

画像ソースが読み込まれていることを適切に検出し、必要な機能を提供します。

以下は間違っています

答えについては、この投稿を見てください: jQuery callback on img src replacement?

基本的に、要素のロード イベント リスナーを使用できます。

$('#imageID').load(function() { .... });

: 画像がブラウザのキャッシュにある場合、load() が常に起動するとは限らないことに注意してください。DOM img.complete を使用していくつかのロジックを追加する必要があります。いくつかの洞察については、load() ドキュメント ページのコメントをお読みください。(@MPD 経由)。

于 2012-10-02T20:31:11.130 に答える