我正在使用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;
有什么想法吗?
答案 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>
谢谢你的期待。