我正在尝试编写一些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。
答案 0 :(得分:4)
几个问题:
您没有致电popup
pdpURL
是处理程序的本地,但popup
是全局的
alert
被赋予字符串,而不是变量引用
$(document).ready(function() {
var pdpURL = window.location.pathname;
function popup() {
alert(pdpURL);
}
popup();
});
答案 1 :(得分:2)
首先,调用变量名时不需要引号。其次,该变量的范围限定为$(document).ready()
函数,因此您的其他函数无法访问该变量。变量必须是全局的才能使您能够执行此操作,您可以通过在函数之外声明变量来完成此操作。
答案 2 :(得分:1)
试试这个:
<script type="text/javascript">
function popup(path) {
alert(path);
}
$(document).ready(function() {
var pdpURL = window.location.pathname;
popup(pdpURL);
});
</script>
答案 3 :(得分:0)
您需要替换单引号。试试alert(pdpURL)
答案 4 :(得分:0)
当然它不起作用。
如果你想象函数及其变量,比如盒子,那么你在一个盒子里面有一个变量,而另一个盒子却看不到
$(document).ready(function() {
var pdpURL = window.location.pathname;
});
function popup() {
alert('pdpURL');
}
您有两种选择。
示例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 | |
| +----------------------------------+ |
| |
+------------------------------------------
答案 5 :(得分:0)
你需要考虑$(document).ready();只有在整页加载完毕后才会触发。
这意味着此后的代码实际上可能在页面加载完成之前执行。
在查看执行顺序时,您应该始终考虑“事件”顺序。