2012-10-02 62 views
0

我想寫一些JavaScript,我可以將當​​前頁面URL的路徑傳遞給另一個函數;特別想將其作爲Google Analytics自定義變量中的值添加。但是,由於我不瞭解JavaScript,因此我認爲最好查看是否可以將變量傳遞給一個簡單的警報。唉,我不能。我已經檢查了這個網站上的幾個帖子,不能讓這個工作。有些我已經檢查線程的是:變量不傳遞到函數

need to pass variable to function
How to pass this variable to this function?
Pass variable to external javascript?

我也試了谷歌和一些JavaScript的教程,和單,雙引號,括號,等玩了..沒有用。任何人都可以幫忙嗎?謝謝。

  <script type="text/javascript"> 
      $(document).ready(function() { 
       var pdpURL = window.location.pathname; 
      }); 
      function popup() { 
       alert('pdpURL'); 
      } 
      </script> 

的彈出顯示,但它只是說pdpURL它,而不是URL。

回答

2

首先,當你調用它,你不需要在你的變量名引號。其次,該變量的作用範圍爲$(document).ready(),因此您的其他功能將無法訪問該變量。變量必須是全局的,才能做到這一點,您可以通過在函數外部聲明變量來完成此操作。

+1

謝謝,這解決了它!我非常感謝你的解釋,因爲它可以幫助我更多地瞭解JavaScript語法。現在我可以睡今晚:) – surfbird0713

+0

沒關係,很高興幫助! –

0

您需要替換單引號。嘗試alert(pdpURL)

4

幾個問題:

  • 你不打電話popup

  • pdpURL是本地的處理程序,但popup是全球

  • alert給出一個字符串,不是可變參考


$(document).ready(function() { 
    var pdpURL = window.location.pathname; 

    function popup() { 
     alert(pdpURL); 
    } 

    popup(); 
}); 
1

試試這個:

所有的
<script type="text/javascript"> 
      function popup(path) { 
       alert(path); 
      } 
      $(document).ready(function() { 
       var pdpURL = window.location.pathname; 
       popup(pdpURL); 
      }); 
      </script> 
0

當然,這是行不通的。

如果你想象的功能,以及它們的變量,如盒子,那麼你有一個盒子裏的變量不能被其他

$(document).ready(function() { 
    var pdpURL = window.location.pathname; 
}); 
function popup() { 
    alert('pdpURL'); 
} 

看到你有兩個選擇。

  • 移動popURL到全球層面
  • 移動彈出您的匿名函數內部

例1

var pdpURL; 
+------------------------------------------ 
| // This is box 1, an anonymous function| 
| // can see pdpURL      | 
+------------------------------------------ 

+------------------------------------------ 
| // This is box 2 called popup   | 
| // Can't see anything inside box 1  | 
| // But can also see pdpURL    | 
+------------------------------------------ 

例2

+------------------------------------------ 
| // This is box 1, an anonymous function| 
| var pdpURL        | 
| +----------------------------------+ | 
| | // This is box 2 called popup | | 
| | // Can see inside box 1   | | 
| +----------------------------------+ |  
|           | 
+------------------------------------------ 
0

您需要考慮$(document).ready();只會在整個頁面加載完成時觸發。

這意味着之後的代碼實際上可能會在頁面加載完成之前執行。

查看執行順序時,您應始終考慮「事件」順序。