我想從window.location提取哈希子字符串值,並將它們寫入HTML以供用戶查看,使用URL語法不允許使用?
作爲查詢字符串分隔符。javascript查詢字符串> window.location.search.substring>使用#而不是?以開始查詢字符串
好了,所以我有這個偉大的代碼示例,這要歸功於@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>
我做了一個modifcatin到他的榜樣,所以我們使用來自客戶端的實際窗口的位置::
window.location = (window.location);
當我打「測試」提交含有上述代碼的頁面上按鈕(URL形成這樣):
http://example.com/pagename.html#source=FOO&medium=BAR&campaign=FRED
(注意沒有?
作爲查詢字符串分隔符,只是#
)
...然後我得到一個成功的警報,顯示從URL源「FOO」。真棒。
但如何,我得到了另外兩個SParamaterNames,然後我怎麼寫他們到頁面HTML,而不是返回一個警告。
我知道這是你們的基本問題。我來到這裏是因爲我一直在努力解決這個問題好幾天,看着許多差異化解決方案。任何幫助是極大的讚賞!!非常感謝你的所有巫師。
謝謝,沒有爲我工作。我在你的答案後更新了我的代碼示例。 –
我沒有看到您在更新中嘗試使用散列。很明顯,它適用於我的jsfiddle示例。感謝Gabe ...... – Gabe
......會更仔細地看你的小提琴。我嘗試在我的服務器上實施您的解決方案,但沒有奏效。將再試一次。 –