0

Shadowbox.js を使用して、Web サイトにスライドショーを表示しています。このスライドショーにはいくつかの写真が表示されていますが、誰がどの写真を見ているのか知りたいです。この目的のために、私は statcounter.com を使用しています。Shadowbox は、スライドショーが開いて別の画像に変わったときに関数を呼び出す、いわゆるフックを提供します。物事を動かすための小さなコードを書きましたが、何らかの理由で statcounter ログにエントリを取得しましたが、シャドウボックスが表示されません。オプションで onopen と onchange を使用しないと、シャドウ ボックスが表示されます。テストとして、コードの下に配置するディレクトリを設定できます。このディレクトリに「sb」と「pix」というサブディレクトリを作成します。Web サイトから Shadowbox アプリケーションを取得し、「sb」ディレクトリ ( http://shadowbox-js.)。次に、「pix」ディレクトリに 3 つのテスト画像 (image1.jpg、image2.jpg、および image3.jpg と呼ばれます) を保存します。statcounter が画像を取得しているかどうかを確認するには、statcounter.com で私の testaccount を使用できます (表示のみ: アカウント testcase、パスワード casetest1)。

ここでコードを含む html を見つけてください: http://www.heres-online.nl/test/index.html

私はjavascriptとhtmlプログラミングを始めたばかりです。私はひどく単純なものを見落としていると想像できます...どんな助けも大歓迎です。

4

2 に答える 2

1

そのように画像タグを挿入しようとする代わりに、次のように作成してください:

var img = new Image();
img.src = "... tracker URL ...";

それはあなたがする必要があるすべてです。editまた、URL 文字列のバックスラッシュをすべて取り除きます。それらには意味がありません。

もう一度編集する必要があるのはこれだけだと思います:

var nonsense = 1;
function tracker() {
  var img = new Image();
  img.src = "http://c.statcounter.com/counter.php?sc_project=5981755&security=582aa718&invisible=1&u=" +
    encodeURIComponent("http://my.pix/" + Shadowbox.getCurrent().content) +
    '&nonsense=' + new Date().getTime() + '_' + nonsense++);
  return true;
}

(キャッシングの問題の可能性を試し、克服するために「ナンセンス」パラメーターを追加しました)

edits — OK、"return true" と "escapeURIComponent" (間違った) から "encodeURIComponent" への変更に注意してください。(古い廃止された関数は「エスケープ」と呼ばれていたため、私はいつも混乱します。)

于 2010-06-24T21:09:59.613 に答える
0

私の最後のコメントであなたの馬を保持してください. 自分で間違えました(タイプミス)。encodeURIComponent の代わりに、enocdeURIComponent と入力しました (なぜコピー/貼り付けしないのでしょうか...ええ、私はしませんでした)。スクリプトは、私が意図したことを正確に実行しています。スライドショーのすべての写真に Statcounter エントリがあることを知っています! 見事。私はあなたの助けにとても満足しています.これは本当に私を悩ませていました. そしてここでの回答の速さは本当にすごかったです!あなたのソリューションを Shadowbox.js フォーラムにも投稿しました。そこにも質問を投稿しましたが、まだ回答がありません。しかし、同じ問題に苦しんでいる人にとっては、この解決策が役立つかもしれません. 改めまして、ありがとうございました。よい週末を!

于 2010-06-25T12:41:11.740 に答える