вызов функции не возвращается к вызывающей функции - PullRequest
0 голосов
/ 25 июня 2010

Я использую Shadowbox.js для отображения слайд-шоу на веб-сайте. Это слайд-шоу показывает несколько фотографий, и я хотел бы знать, кто смотрит на какие фотографии. Для этого я использую statcounter.com. Shadowbox предлагает так называемый хук для вызова функции, когда открывается слайд-шоу и когда оно меняется на другое изображение. Я написал небольшой фрагмент кода, чтобы заставить вещи двигаться, но по какой-то причине я получаю запись в моем журнале statcounter, но shadowbox не появляется. Когда я не использую 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. Я могу вообразить, что я пропускаю что-то ужасно простое ... Любая помощь высоко ценится.

Ответы [ 2 ]

1 голос
/ 25 июня 2010

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

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;
}

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

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

0 голосов
/ 25 июня 2010

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

...