2011-11-23 47 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);應該做的伎倆。

相關問題