Почему 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';
Надеюсь, это кому-нибудь поможет.