在iFrame(不同域)表单隐藏字段中将引用者引用到父级

时间:2014-11-12 18:13:53

标签: javascript function

我正在使用javascript在iFrame中加载表单并将引用者添加到URL中以将参数传递给iFrame(步骤1)以填充表单上的隐藏字段(步骤2)。

第1步工作正常并产生类似于此的内容:

http://www.parentdomain.com/parentpage/?refURL=http://www.somereferringURL.com/someRefpage/

第2步(我陷入困境)



function gup( grabREF )
{
  grabREF = grabREF.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
  var regexS = "[\\?&]"+grabREF+"=([^&#]*)";
  var regex = new RegExp( regexS );
  var results = regex.exec( window.location.href );
  if( results == null )
    return "";
  else
    return results[1];
}
var referrer = gup( 'refURL' );
function start() {
var ref = document.getElementById('my-formfield-id');{
ref.value = referrer;
}
onload = start;       
}




这只(仍然)似乎让父母作为引用者(http://www.parentdomain.com/parentpage/),并且(实际上)似乎在附加带有结束标记的URL字符串。表单和父级在不同的子域中进行reisde。我猜这个罪魁祸首可能就在这里:ref.value = referrer;

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我无法让它工作,因此我只使用iframe父作为引荐来源并更改父页面(并在iframe中嵌入相同的表单)来捕获我需要的不同广告系列引荐网址。我仍然可以在一个位置抓住它们,因为我使用的是同一个表单,只有一个父级(登录页面)并将引用者传递给父级,这样做会很不错。

此代码将执行此操作:

 <script type="text/javascript">
    function getParameterByName(name) {
    name = name.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]");
    var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"),
        results = regex.exec(location.search);
    return results === null ? "" : decodeURIComponent(results[1].replace(/\+/g, " "));
    }
    var refVAL = getParameterByName('refURL');
    //document.write(refVAL);

    function SetValue()
    {
    document.getElementById('my_hidden_formfield_id').value = refVAL;
    //alert(document.getElementById('my_hidden_formfield_id').value);

}
</script>

谢谢你的期待。