Почему Google Optimize не выполняет JavaScript при обновлении страницы? - PullRequest
0 голосов
/ 02 ноября 2018

Я использую Google Optimize для запуска эксперимента A / B на странице, вводя строку Javascript:

$(document).ready(function(){console.log(1);});

Когда я запускаю эксперимент и просматриваю целевую страницу в новом окне инкогнито, на консоли успешно регистрируется «1».

Но если я обновлю страницу, в консоль ничего не войдет. Я могу перемещаться по странице и обратно, но ничего не регистрируется.

Я смогу заставить его работать снова, только если закрою сеанс инкогнито и начну новый.

Как будто Optimize запускает сценарий только в первый раз, когда вариант видится пользователем сеанса?

Как заставить JS запускаться каждый раз, когда страница просматривается в сеансе?

Примечание. Я попытался разместить код в теле и голове как после открытия тега, так и после закрытия тега.

1 Ответ

0 голосов
/ 14 ноября 2018

Благодаря некоторой помощи от сотрудника Google здесь мне удалось выяснить, что JQuery был задержкой. При первой загрузке в режиме инкогнито Optimize еще не был кэширован и загружался дольше, чем JQuery, поэтому к моменту запуска мой пользовательский JS мог работать нормально.

Но при обновлении кэшированный Optimize загружался до JQuery, что означало сбой моего пользовательского JS.

Решением было раздеть JQuery и сделать то, что мне нужно, с простым ванильным Javascript.

Для моего простого примера, приведенного выше, я могу просто вызвать console.log (1); без упаковки.

В своей реальной работе я пытался установить заполнитель текста в поле ввода. Делать это в простом Javascript работал нормально:

document.getElementById ('theElement'). Placeholder = 'The Text';

Надеюсь, это кому-нибудь поможет.

...