我正在尝试从 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 写入页面而不是返回警报。
我知道这对你们来说是一个基本问题。我在这里是因为我已经尝试解决这个问题好几天了,查看了许多不同的解决方案。任何帮助是极大的赞赏!!非常感谢你们所有的巫师。