2011-11-23 96 views
0

我正在使用JavaScript读取URL并分析参数。当我将document.write添加到页面主体时,JavaScript工作得很好。我正在尝试使用参数值并将其填充到Google JavaScript广告投放中。从'frank'变量中取出参数'fire'并将其替换为位于此JS中的'VALUE'是理想的:GA_googleAddAttr("ad_key", "VALUE");从函数中获取结果并将其添加到javascript

我感觉好像我错过了第一个JS的结果,并将它放置在Google JS中。

任何帮助将不胜感激。预先感谢。

实例网址:http://www.example.com/test.html?frank=fire

------------ JavaScript的:获取URL参数------------

<script type="text/javascript"> 

function gup(name){ 
name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]"); 
var regexS = "[\\?&]"+name+"=([^&#]*)"; 
var regex = new RegExp(regexS); 
var results = regex.exec(window.location.href); 
if(results == null) return ""; 
else return results[1];} 

var frank_param = gup('frank'); 

</script> 

- ---------- JavaScript的:谷歌广告服务的属性------------

<script type="text/javascript"> 
GA_googleAddAttr("ad_key", "VALUE"); 
</script> 

ad_key =添加了谷歌DFP广告中投放平台

VALUE =用于指定特定网页的广告


回答

1

第一个脚本做了一堆不必要的工作,并且很微妙。

它会失败

  1. 在参数名称中包含一个反斜杠
  2. 当有查询没有参数,但有一个片段中的
  3. 当参数值包含% - 编码的字符

您可以

function gup(name) { 
    var params = {}; 
    var parts = (window.location.search || '').split(/[&?]/); 
    for (var i = 0; i < parts.length; ++i) { 
    var eq = parts[i].indexOf('='); 
    if (eq < 0) continue; 
    params[decodeURIComponent(parts[i].substring(0, eq))] 
     = decodeURIComponent(parts[i].substring(eq+1)); 
    } 
    return Object.hasOwnProperty.call(params, name) 
     ? params[name] : null; 
} 
更换

这将正确地为您提供一个CGI参数值。

然后,只需按照它与

GA_googleAddAttr("ad_key", gup('frank') || ''); 
+0

我欣赏的帮助。 JS在下面与Leo的补充一起工作。它的工作完美。 – Jorge

0

GA_googleAddAttr("ad_key", frank_param);应该做的伎俩。

相关问题