在将一个JS变量传递给另一个JS时遇到一些问题。 我正在使用HubSpot表单及其事件onFormSubmit
redirectUrl: "/lp-thank-you-page/",
onFormSubmit: function($form) {
var email = document.getElementById("email-feca4800-6b73-4a38-8f80-1406a1b726b7").value;
}
基本上,我想使用可变电子邮件到另一个页面模板,这是“谢谢”页面。在“谢谢”页面上,我必须将用户重定向到他们的特定电子邮件,因此我的url参数应如下所示: 登录?req = md-freetier-signup&src = 电子邮件 我正在使用这个:
<script>
setTimeout('Redirect()', 5000);
function Redirect()
{
window.location="https://myurl.com/login?req=md-freetier-signup&src="+email;
}
</script>
但是我很确定该值根本不会传递给其他模板,并且我不确定如何使它传递,这样我的代码才能工作。
谢谢!
答案 0 :(得分:1)
您可以将此变量保存在会话中,以便以后访问。这将绕过HubSpot,并允许您随时检索这些变量。
示例:
redirectUrl: "/lp-thank-you-page/",
onFormSubmit: function($form) {
var email = document.getElementById("email-feca4800-6b73-4a38-8f80-1406a1b726b7").value;
sessionStorage.setItem("email",email);
}
在另一页上:
setTimeout('Redirect()', 5000);
function Redirect()
{
var email = sessionStorage.getItem("email");
window.location="https://myurl.com/login?req=md-freetier-signup&src="+email;
}
如果您在此之后再也不使用会话变量,请确保使用sessionStorage.clear();
答案 1 :(得分:1)
您可以尝试在JS的localstorage中传递变量:
nohup.out
然后您可以找回
localStorage.setItem('email', 'your@email.fr');
答案 2 :(得分:-1)
据我了解,这是一个上下文问题。
将var email = document.getElementById("email-feca4800-6b73-4a38-8f80-1406a1b726b7").value;
替换为window.email = document.getElementById("email-feca4800-6b73-4a38-8f80-1406a1b726b7").value;
,window.location="https://myurl.com/login?req=md-freetier-signup&src="+window.email;
应该可以正常工作。
这是一个可行的解决方案,尽管不是一个好的解决方案!尽可能避免使用“窗口”对象,并始终考虑使用名称空间,但我不知道HubSpot允许您使用多少。