Почему Google Optimize не выполняет JavaScript при обновлении страницы?

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

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

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

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

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

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

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

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

1 ответ

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

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

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

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

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

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

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

Другие вопросы по тегам