3

コミックのウェブサイトhttp://www.hittingtreeswithsticks.com/を作成しました。コミックのサムネイルをクリックすると、画像のフルサイズ(viewimage.phpテンプレート)に移動します。

viewimage.phpテンプレートでは、javascript / jqueryを使用して、配列に保存した画像を循環しているため、ユーザーは毎回ページをリロードする必要がありません。

これには2つの問題があるようです。

1)追加したい「いいね/嫌い」機能もあります...画像ごとに投票できるようにするだけでなく、Facebookのようなボタン(ユーザーが画像ごとに好きになるようにする)もあります。現在、jQueryは画像を循環しているため、クリックした画像のIDは更新されません。(この画像では、右矢印キーを押して次に進むと、IDが35に増加するはずです)。

ここに画像の説明を入力してください

ここに画像の説明を入力してください

2)最終的には広告収入からお金を稼ぎたいです。情報筋によると、ページをリロードする代わりにjQueryを使用して次の画像を取得すると、広告は更新されません...そして、広告収入が大幅に減少します。

だから、私の質問は... Jqueryがこれらの問題を処理することは可能ですか、それともIDをインクリメントして広告を更新するためにページの更新を行う必要がありますか?

ありがとう!

編集:私は追加しました

window.history.pushState(null, null, 'http://www.hittingtreeswithsticks.com/?action=viewimage&site=comics&id=imgIndex');

コード(これは機能していないようで、実際には「次の」コードが機能しないようにブロックします)

    $("#next").click(function() {
        imgIndex++;
            if (imgIndex > imgArray.length-1) 
            {
                imgIndex = 0;
            }
            img.src = imgArray[imgIndex];
            window.history.pushState(null, null, 'http://www.hittingtreeswithsticks.com/?action=viewimage&site=comics&id=imgIndex');
    });

更新しました:

エラー:

ここに画像の説明を入力してください

4

1 に答える 1

2

最初の問題に関しては、pushState()を使用できます。画像を置き換えるときに、URLを更新することもできます。これにより、新しい履歴エントリが追加され、ブラウザのURLが置き換えられますが、実際にはページが再読み込みされません。例:

window.history.pushState(null, null, 'http://www.hittingtreeswithsticks.com/?action=viewimage&site=comics&id=N&cat=&title=TITLE');

(ここでNとTITLEを適切に置き換えてください)。だからそれはそれを解決します。これはjQuery機能ではなく、バニラJavaScriptであることに注意してください。

問題2に関しては、広告の設定方法によって異なりますが、広告が自動的に再読み込みされない場合があります。ほとんどの場合、JavaScriptを介して広告をリロードすることもできますが、詳細は広告の配信方法の詳細によって異なります。JavaScriptを介して非同期で広告を読み込む方法を尋ねる別の質問を投稿し、広告サーバーの動作の詳細を説明する必要があります。

于 2012-11-25T15:55:53.083 に答える