2010-06-24 2 views
0

Я использую Shadowbox.js для отображения слайд-шоу на веб-сайте. Это слайд-шоу показывает несколько фотографий, и я хотел бы узнать, кто смотрит, какие фотографии. Для этого я использую statcounter.com. Shadowbox предлагает так называемый hook для вызова функции при открытии слайд-шоу и при изменении на другое изображение. Я написал небольшой фрагмент кода, чтобы заставить вещи двигаться, но по какой-то причине я получаю запись в журнале statcounter, но теневой ящик не появляется. Когда я не использую onopen и onchange в параметрах, теневой блок действительно отображается. В качестве теста вы можете настроить каталог, в котором вы размещаете код ниже. Создайте поддиректории в этом каталоге под названием «sb» и «pix». Получите приложение Shadowbox с веб-сайта и сохраните его в каталоге «sb» (http://shadowbox-js.com/download.html). Рядом с этим магазином находятся 3 образца (image1.jpg, image2.jpg и image3.jpg) в каталоге «pix». Чтобы проверить, собирает ли statcounter изображения, вы можете использовать мой testaccount на statcounter.com (только для просмотра: тестовый тест, пароль casetest1).вызов функции не возвращается к вызывающей функции

Пожалуйста, найдите HTML с кодом здесь: http://www.heres-online.nl/test/index.html

Пожалуйста, примите во внимание, я только начинаю в JavaScript и HTML программирования. Я могу себе представить, что я пропускаю что-то ужасно простое ... Любая помощь очень ценится.

+1

Я нахожусь на работе и не должен быть крутым, поймал мой босс, глядя на девушек, склонившихся вниз. В противном случае я мог бы помочь. : P – Matias

+1

@Matias - Значит, у вашего босса нет проблем с ответом на вопросы о SO во время работы? :-P –

+0

Хм, некоторые люди ... мой Бог Матиас ... чтобы сохранить голову круто, вместо этого я загрузил другую (довольно скучную?) Картину. –

ответ

1

Вместо того, чтобы пытаться вставить изображение тег, способ, просто сделать один:

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

Это все, что вам нужно сделать. Редактировать Также избавиться от всех этих обратных косых черт в ваших 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; 
} 

(добавлен параметр "нонсенс", чтобы попытаться преодолеть возможные проблемы кэширования)

изменения — OK отметить " return true "и изменение" escapeURIComponent "(неверно) на" encodeURIComponent ". (Меня всегда путают, потому что старая устаревшая функция называлась «побег».)

+0

Вау, это быстрый ответ. Хорошо, то, что вы предлагаете избавиться от мусора в моей функции, действительно хорошая идея. Как я уже сказал, я довольно новичок в javascript и html, поэтому ваши предложения более приветствуются. ;-) Однако, адаптируя мой источник к предложенным линиям, я все равно не приношу рабочую слайд-шоу теневого окна и statcountertraceline на картинку в слайд-шоу. Любые предложения, как это решить? –

+0

Хорошо, что происходит сейчас? О, о, подождите, вот одна вещь, чтобы попробовать; возможно, ваш браузер считает, что изображение находится в кеше - я обновлю сообщение. – Pointy

+0

OK Я немного изменил функцию. Теперь, если у вас все еще есть проблемы, я предлагаю установить плагин «TamperData» (или что-то в этом роде) для Firefox. Это позволит вам отслеживать все HTTP-запросы, которые делает ваш браузер. Для вас это будет означать возможность увидеть, действительно ли этот материал трекера приводит к тому, что HTTP-адрес «получает» URL-адрес счетчика. (Я думаю, что это будет, но я не настроен для проверки этого.) – Pointy

0

Пожалуйста, держите своих лошадей в своем последнем комментарии. Я сам сделал ошибку (опечатка). Вместо encodeURIComponent я набрал enocdeURIComponent (почему бы не скопировать/вставить ... да, ну, я просто этого не сделал). Сценарий теперь делает именно то, что я намеревался сделать. Я знаю, есть запись Statcounter для каждой картинки в слайд-шоу! Superb. Я очень доволен твоей помощью, это меня очень злит, не имея возможности запустить ее. И скорость получения ответа здесь была действительно потрясающей! Я также разместил ваше решение на форуме Shadowbox.js. Я тоже отправил свой вопрос, но ответов пока нет. Но для тех, кто борется с той же проблемой, это решение может быть полезно. Еще раз спасибо, и у меня хорошие выходные!

Смежные вопросы