我有一个不调用操作的web表单,但是当提交被发送到Javascript函数时,它本质上是将信息推送到第三方预订引擎,我想传递cookie。基本上表单被发送到:
<a href="javascript:sendToCBE();"><img src="#"></a>
sendToCBE函数如下:
function sendToCBE(){
if (validateForm()){
setHidden();
document.forms[0].target="_blank";
document.forms[0].action="http://partners.kcdataservices.com/resort/custom/buildMyOwn.jsp";
document.forms[0].submit();
是否可以将其更改为
function sendToCBE(){
if (validateForm()){
setHidden();
document.forms[0].target="_blank";
document.forms[0].action="pageTracker._getLinkerUrl(http://partners.kcdataservices.com/resort/custom/buildMyOwn.jsp)";
document.forms[0].submit();
为了跨域跟踪和传递cookie,这样新的cookie就不会被第三方预订引擎设置?我还没有找到更好(或更简单)的方法来做到这一点吗?
您可以尝试下面的代码片段。确保将GA相关的代码放在try catch中,这样如果没有在站点上设置,表单仍然可以工作。
function sendToCBE(){
var action = "http://partners.kcdataservices.com/resort/custom/buildMyOwn.jsp";
try{
var tracker = _gat._getTrackers()[0];
action = tracker._getLinkerUrl(action);
}catch(e){
// _gat doesnt exist or there is no tracker setup. Just ignore it and continue
}
if (validateForm()){
setHidden();
document.forms[0].target = "_blank";
document.forms[0].action = action;
document.forms[0].submit();
}
}