2

我正在尝试从 window.location 提取哈希子字符串值并将它们写入 HTML 以供用户查看,其 URL 语法不允许?用作查询字符串分隔符。

好的,感谢@Gabe,我有这个很棒的代码示例:

<html>

<input type="button" id="test" value="Test" />

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8/jquery.min.js"></script>

<script>

$(function() {
    $('#test').click(function() {

        window.location = (window.location);
        GetURLParameter('source');  

    });

});

function GetURLParameter(sParam) {
    var sPageURL = window.location.hash.substring(1);

    console.log(sPageURL);

    var sURLVariables = sPageURL.split('&');
    for (var i = 0; i < sURLVariables.length; i++) {
        var sParameterName = sURLVariables[i].split('=');
        if (sParameterName[0] == sParam) {

            alert(sParameterName[1]);

            return sParameterName[1];
        }
    }
}

</script>

</html>

我对他的例子做了一个修改,所以我们使用客户端的实际窗口位置::

window.location = (window.location);

当我在包含上述代码的页面上点击“测试”提交按钮时(URL 是这样形成的):

http://example.com/pagename.html#source=FOO&medium=BAR&campaign=FRED

(注意没有?作为查询字符串分隔符,只是#

...然后我收到一个成功的警报,显示来自 URL 的源“FOO”。惊人的。

但是如何获取其他两个 SParamaterNames,然后如何将它们作为 HTML 写入页面而不是返回警报。

我知道这对你们来说是一个基本问题。我在这里是因为我已经尝试解决这个问题好几天了,查看了许多不同的解决方案。任何帮助是极大的赞赏!!非常感谢你们所有的巫师。

4

1 回答 1

3

只需从hash_searchlocation object

是一个工作示例。

function GetURLParameter(sParam)
{
   var sPageURL = window.location.hash.substring(1);
   var sURLVariables = sPageURL.split('&');
   for (var i = 0; i < sURLVariables.length; i++)
   {
     var sParameterName = sURLVariables[i].split('=');
     if (sParameterName[0] == sParam)
     {
        return sParameterName[1];
     }
   }
}
于 2012-08-22T23:03:52.140 回答