通过jQuerys加载发送GET时,变量不可用

时间:2013-04-16 15:23:18

标签: javascript jquery html get undefined

我正在使用jQuery来获取导航文件的内容并将其加载到我页面的一部分div中。

我正在为它提供一个包含页面名称的值,以便我可以更新导航上的“active”类。

这是我用来显示GET信息的代码,这可以完美地运行,因为当我从浏览器传递一个变量(即header.html?page = foo)时,它运行得很完美。

<script>
    function getQueryParams(qs) {
        qs = qs.split("+").join(" ");
        var params = {},
            tokens,
            re = /[?&]?([^=]+)=([^&]*)/g;
        while (tokens = re.exec(qs)) {
            params[decodeURIComponent(tokens[1])]
                = decodeURIComponent(tokens[2]);
        }
        return params;
    }
    var $_GET = getQueryParams(document.location.search);
    alert($_GET["page"]);
</script>

正如您现在所看到的那样,它只显示一个带有值的警报。

当我调用此页面时,它就像:

一样简单
<script>
   $("#header").load("header.html?page=bar");
</script> 

对于我的生活,我无法理解为什么它会从.load调用时返回为“undefined”,因为我之前已经多次使用过GET变量。

非常感谢任何输入,

克里斯。

1 个答案:

答案 0 :(得分:0)

.load运行Javascript时,document是原始文档,而不是正在加载的页面。

要将参数传递给正在加载的脚本,请使用全局变量。