writeln img src 提交数据到外部系统 - Firefox 和 IE 挂
writeln img src to submit data to external system - Firefox and IE hanging
我一直在网上搜索以找到解决我遇到的问题的方法。我对 Javascript 比较陌生,所以请原谅。
单击结帐页面上的下一步按钮后,脚本 运行 将数据提交到电子商务系统。我在上面添加了一个脚本,它也可以获取数据并将其放入我们正在使用的电子邮件营销系统中。该脚本查看是否勾选了复选框。是否勾选我正在使用下面的代码编写一个 img 和 src 传输数据。
这在 Chrome 和 Safari 中完美运行,但 Firefox 和 IE 不加载下一页并且似乎在等待 img 的 return(当然不存在),但数据已成功添加到外部系统营销系统。
我真的很感激任何建议,因为我很快就会在这个问题上失去理智。
document.getElementById("idBtnNext").addEventListener("click", AddContact, false);
function AddContact(){
var bemail = document.getElementsByName('INVOICEEMAIL')[0].value;
var btitle = document.getElementsByName('INVOICESALUTATION')[0].value;
var bfirstname = document.getElementsByName('INVOICEFIRSTNAME')[0].value;
var blastname = document.getElementsByName('INVOICELASTNAME')[0].value;
var baddressline1 = document.getElementsByName('INVOICEADDRESS1')[0].value;
var baddressline2 = document.getElementsByName('INVOICEADDRESS2')[0].value;
var bcity = document.getElementsByName('INVOICEADDRESS3')[0].value;
var bstate = document.getElementsByName('INVOICEADDRESS4')[0].value;
var bmobile = document.getElementsByName('INVOICEMOBILE')[0].value;
var bhome = document.getElementsByName('INVOICEPHONE')[0].value;
var bcompany = document.getElementsByName('INVOICECOMPANY')[0].value;
var bcountry = document.getElementsByName('LocationInvoiceCountry')[0].value;
var bpostcode = document.getElementsByName('INVOICEPOSTALCODE')[0].value;
if (document.getElementById('idINVOICEPRIVACY').checked == false)
{
document.writeln('<img src="https://app.bronto.com/public/?q=direct_add&fn=Public_DirectAddForm&id=XXXXXXXX&email='+bemail+'&field1=title,set,'+btitle+'&field2=firstname,set,'+bfirstname+'&field3=lastname,set,'+blastname+'&field4=addressline1,set,'+baddressline1+'&field5=addressline2,set,'+baddressline2+'&field6=city,set,'+bcity+'&field7=county,set,'+bstate+'&field8=country,set,'+bcountry+'&field9=mobile,set,'+bmobile+'&field10=home,set,'+bhome+'&field11=company,set,'+bcompany+'&field12=postcode,set,'+bpostcode+'&field13=ItemsInCart,set,0&field14=Item1ImageURL,set,&field15=Item1Name,set,&field16=Item1URL,set,&list17=0bbf03ec0000000000000000000000f59720&list18=0bbf03ec0000000000000000000000f59809&createCookie=1" width="0" height="0" border="0" alt=""/>');
return true;
}
else if (document.getElementById('idINVOICEPRIVACY').checked == true)
{
document.writeln('<img src="https://app.bronto.com/public/?q=direct_add&fn=Public_DirectAddForm&id=XXXXXX&email='+bemail+'&field1=title,set,'+btitle+'&field2=firstname,set,'+bfirstname+'&field3=lastname,set,'+blastname+'&field4=addressline1,set,'+baddressline1+'&field5=addressline2,set,'+baddressline2+'&field6=city,set,'+bcity+'&field7=county,set,'+bstate+'&field8=country,set,'+bcountry+'&field9=mobile,set,'+bmobile+'&field10=home,set,'+bhome+'&field11=company,set,'+bcompany+'&field12=postcode,set,'+bpostcode+'&field13=ItemsInCart,set,0&field14=Item1ImageURL,set,&field15=Item1Name,set,&field16=Item1URL,set,&transactional=1&createCookie=1" width="0" height="0" border="0" alt=""/>');
return true;
}
}
我认为这种行为是由您想如何将 HTML 元素写入页面的方式引起的。对于您的提议,我认为我有更好的方法:
所以第一个改变是添加一个不可见的img emelent:
<img src="" id="hiddenImg" width="1" height="1" border="0" alt="" style="visibility:hidden">
<!-- You can also use display:none; -->
第二个是改变你的Javascript:
function AddContact()
{
... lines skipped ...
var targetUrlStr = "";
if (document.getElementById('idINVOICEPRIVACY').checked == false)
{
targetUrlStr = 'https://app.bronto.com/public/<url cut here>';
} else if (document.getElementById('idINVOICEPRIVACY').checked == true) {
targetUrlStr = 'https://app.bronto.com/public/<url cut here>';
}
document.getElementById("hiddenImg").src = targetUrlStr;
return true;
}
希望对您有所帮助。
我一直在网上搜索以找到解决我遇到的问题的方法。我对 Javascript 比较陌生,所以请原谅。
单击结帐页面上的下一步按钮后,脚本 运行 将数据提交到电子商务系统。我在上面添加了一个脚本,它也可以获取数据并将其放入我们正在使用的电子邮件营销系统中。该脚本查看是否勾选了复选框。是否勾选我正在使用下面的代码编写一个 img 和 src 传输数据。
这在 Chrome 和 Safari 中完美运行,但 Firefox 和 IE 不加载下一页并且似乎在等待 img 的 return(当然不存在),但数据已成功添加到外部系统营销系统。
我真的很感激任何建议,因为我很快就会在这个问题上失去理智。
document.getElementById("idBtnNext").addEventListener("click", AddContact, false);
function AddContact(){
var bemail = document.getElementsByName('INVOICEEMAIL')[0].value;
var btitle = document.getElementsByName('INVOICESALUTATION')[0].value;
var bfirstname = document.getElementsByName('INVOICEFIRSTNAME')[0].value;
var blastname = document.getElementsByName('INVOICELASTNAME')[0].value;
var baddressline1 = document.getElementsByName('INVOICEADDRESS1')[0].value;
var baddressline2 = document.getElementsByName('INVOICEADDRESS2')[0].value;
var bcity = document.getElementsByName('INVOICEADDRESS3')[0].value;
var bstate = document.getElementsByName('INVOICEADDRESS4')[0].value;
var bmobile = document.getElementsByName('INVOICEMOBILE')[0].value;
var bhome = document.getElementsByName('INVOICEPHONE')[0].value;
var bcompany = document.getElementsByName('INVOICECOMPANY')[0].value;
var bcountry = document.getElementsByName('LocationInvoiceCountry')[0].value;
var bpostcode = document.getElementsByName('INVOICEPOSTALCODE')[0].value;
if (document.getElementById('idINVOICEPRIVACY').checked == false)
{
document.writeln('<img src="https://app.bronto.com/public/?q=direct_add&fn=Public_DirectAddForm&id=XXXXXXXX&email='+bemail+'&field1=title,set,'+btitle+'&field2=firstname,set,'+bfirstname+'&field3=lastname,set,'+blastname+'&field4=addressline1,set,'+baddressline1+'&field5=addressline2,set,'+baddressline2+'&field6=city,set,'+bcity+'&field7=county,set,'+bstate+'&field8=country,set,'+bcountry+'&field9=mobile,set,'+bmobile+'&field10=home,set,'+bhome+'&field11=company,set,'+bcompany+'&field12=postcode,set,'+bpostcode+'&field13=ItemsInCart,set,0&field14=Item1ImageURL,set,&field15=Item1Name,set,&field16=Item1URL,set,&list17=0bbf03ec0000000000000000000000f59720&list18=0bbf03ec0000000000000000000000f59809&createCookie=1" width="0" height="0" border="0" alt=""/>');
return true;
}
else if (document.getElementById('idINVOICEPRIVACY').checked == true)
{
document.writeln('<img src="https://app.bronto.com/public/?q=direct_add&fn=Public_DirectAddForm&id=XXXXXX&email='+bemail+'&field1=title,set,'+btitle+'&field2=firstname,set,'+bfirstname+'&field3=lastname,set,'+blastname+'&field4=addressline1,set,'+baddressline1+'&field5=addressline2,set,'+baddressline2+'&field6=city,set,'+bcity+'&field7=county,set,'+bstate+'&field8=country,set,'+bcountry+'&field9=mobile,set,'+bmobile+'&field10=home,set,'+bhome+'&field11=company,set,'+bcompany+'&field12=postcode,set,'+bpostcode+'&field13=ItemsInCart,set,0&field14=Item1ImageURL,set,&field15=Item1Name,set,&field16=Item1URL,set,&transactional=1&createCookie=1" width="0" height="0" border="0" alt=""/>');
return true;
}
}
我认为这种行为是由您想如何将 HTML 元素写入页面的方式引起的。对于您的提议,我认为我有更好的方法:
所以第一个改变是添加一个不可见的img emelent:
<img src="" id="hiddenImg" width="1" height="1" border="0" alt="" style="visibility:hidden">
<!-- You can also use display:none; -->
第二个是改变你的Javascript:
function AddContact()
{
... lines skipped ...
var targetUrlStr = "";
if (document.getElementById('idINVOICEPRIVACY').checked == false)
{
targetUrlStr = 'https://app.bronto.com/public/<url cut here>';
} else if (document.getElementById('idINVOICEPRIVACY').checked == true) {
targetUrlStr = 'https://app.bronto.com/public/<url cut here>';
}
document.getElementById("hiddenImg").src = targetUrlStr;
return true;
}
希望对您有所帮助。