#javascript #forms #hubspot
Вопрос:
Я использую этот скрипт для передачи данных из формы в URL-адрес
Проблема: электронное письмо передается в кодированном виде, и вместо @ добавляется @
- Есть ли способ передать некодированный URL-адрес? Я хотел бы передать полное электронное письмо в URL.
Мне нужно полное электронное письмо, потому что я использую его затем для заполнения скрытого поля в форме Typeform.
Большое спасибо за вашу помощь 🙂
<!--[if lte IE 8]>
<script charset="utf-8" type="text/javascript" src="//js.hsforms.net/forms/v2-legacy.js"></script>
<![endif]-->
<script charset="utf-8" type="text/javascript" src="//js.hsforms.net/forms/v2.js"></script>
<script>
hbspt.forms.create({
portalId: "[PORTAL ID]",
formId: "[FORM ID]"
});
// add custom script after it
var array = [];
window.addEventListener('message', event => {
// in the onFormSubmit global form event, grab the data and push it to the above array
if(event.data.type === 'hsFormCallback' amp;amp; event.data.eventName === 'onFormSubmit') {
let vars = ['firstname', 'lastname', 'email', 'phone', 'hs_language'];
let len = vars.length;
for (i = 0; i < len; i ) {
for (j in event.data.data) {
if (event.data.data[j]["name"] == vars[i]) {
let object = {
name: '',
value: ''
};
object.name = vars[i];
object.value = event.data.data[j]["value"];
array.push(object);
}
}
}
}
// after the form has submitted and data sent to Hubspot, get the data from the array and then redirect the page, adding the data to the URL
if(event.data.type === 'hsFormCallback' amp;amp; event.data.eventName === 'onFormSubmitted') {
var firstname = array[0].value
var lastname = array[1].value
var email = array[2].value
var phone = array[3].value
var lang = array[4].value
window.location = "[URL TO REDIRECT TO HERE]?firstName=" encodeURIComponent( firstname ) "amp;lastName=" encodeURIComponent( lastname ) "amp;email=" encodeURIComponent( email ) "amp;phone=" encodeURIComponent( phone ) "amp;language=" encodeURIComponent( lang );
}
});
</script>
Комментарии:
1. Это не проблема, потому что вы можете просто запустить значение,
decodeURIComponent()
чтобы получить исходную строку2. спасибо, Крис, декодированное значение должно отображаться в URL страницы, на которую указывает контакт при нажатии
submit
— Сейчас происходит то, что новый URL имеет там закодированное значение — Вы знаете, как я могу это сделать?3. При создании URL-адреса замените
encodeURIComponent( email )
на4. Обратите внимание, что я понятия не имею, в чем смысл всего этого, или почему кого-то волнует, говорит ли это
@
или@
внутри длинного URL-адреса с кучей параметров. Также есть вероятность, что это серьезная проблема xy , но здесь просто недостаточно информации, чтобы дать содержательный ответ. Пожалуйста, попробуйте уточнить, какова здесь фактическая цель.5. спасибо, Крис, я пытался заменить
encodeURIComponent( email )
на