Название, наверное, немного сумбурное. В основном то, что я пытаюсь сделать, это создать пользовательскую функцию, которая будет изменять свойства объекта, затем возвращать этот объект, а затем вызывать функцию.
Немного предыстории того, что я делаю: изо всех сил стараюсь использовать API Zendesk для использования веб-виджета на моей веб-странице. По сути, этот веб-виджет настраивается как HelpCenter при запуске, который затем показывает кнопку для живого чата или электронной почты, в зависимости от состояния. Основное рассматриваемое здесь свойство называется «подавить», которое отключает одну из страниц виджетов (чат, электронная почта и справочный центр). И моя цель — сделать так, чтобы эта настраиваемая функция «подавляла» 2 из 3 страниц виджетов, чтобы отображалась только одна. Затем API-функция под названием zE.activate()
открывала виджет.
Я знаю, что это много текста, позвольте мне показать вам код, который у меня есть:
<script>
function setChatPopOutProps(window) {
window.zESettings = {
webWidget: {
contactForm: {
suppress: true
},
helpCenter: {
suppress: true
}
}
};
return window.zESettings;
};
function chatPopOut() {
setChatPopOutProps(window);
zE.activate();
};
</script>
Теперь, когда я нажимаю кнопку, которой назначено chatPopOut()
, zE.activate()
работает, так как открывает виджет, но в основном setChatPopOutProps(window)
, похоже, не работает.
Я также пробовал следующее:
- Не возвращается
window
илиwindow.zESettings
- Поместить все в одну функцию, поставив
zE.activate()
в концеzESettings
или сразу после возвратаwindow
илиwindow.zESettings
Если вам нужно увидеть виджет в действии, чтобы иметь представление, вы можете увидеть его прямо здесь. Нажмите на зеленую кнопку в правом нижнем углу, введите что-нибудь, и вы увидите всплывающую кнопку контактной формы. Эта кнопка меняется на кнопку чата, когда доступен агент чата.
Теперь я знаю, что это то, что обычно мне следует решать напрямую с Zendesk, что я и пытался сделать, но они сказали мне, что нет ничего, что могло бы сделать то, что я пытаюсь сделать, но я действительно чувствую, что это как-то связано с как я делаю что-то в javascript, а не так, как построен API.
У кого-нибудь есть идея? Я был бы очень признателен.
P.S. Это мой второй пост, поэтому заранее извиняюсь за ошибки, которые я, вероятно, допустил в этом вопросе.