我可以使用pageTracker._getLinkerUrl将document.forms [0] .action =“”中的操作URL换行吗?

时间:2011-12-14 22:20:12

标签: javascript forms function google-analytics cross-domain

我有一个不会调用操作的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,以便第三方预订引擎不设置新的?是否有更好(或更简单)的方法来做到这一点,我还没有找到?

1 个答案:

答案 0 :(得分:0)

您可以尝试使用此代码段。确保将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(); 
  }
}