2014-03-29 49 views
1

我們有一個用於手機的SPA html5網頁。由於詳細信息頁面是在#後面設置的,因此我希望將用戶在共享按鈕中單擊時發送的URL更改爲#之前的更多信息。這樣,我改變的說明,標題,等等...的修改手機分享按鈕中的網址

例子我想:

網址在瀏覽器中:URL /#ID = 1

網址發送到「共享「:url?id = 1

你現在有辦法嗎?但我不想向服務器發出另一個請求。

在此先感謝。

+1

嗨,https://developer.mozilla.org/en-US/docs/Web/API/document.location - throw'var _id = document.location.hash; alert(_id);'進入你的代碼。你有你需要的嗎? –

+0

我想修改它只是爲了按鈕,而不是在瀏覽器的url地方,因爲這會觸發另一個請求到服務器。 –

+0

它已被問及在這裏得到很好的回答: http://stackoverflow.com/questions/824349/modify-the-url-without-reloading-the-page –

回答

1

我希望我明白你想要什麼:你想抓住當前的網址並修改它,對吧?如果是這樣,那麼下一步:

打開此js小提琴http://jsfiddle.net/6Yf3r/

小提琴代碼

$(document).ready(function(){ 
    var currentUrl = window.location.href; 
    var newUrl = currentUrl.replace('/_','?'); 
    alert(currentUrl); 
    alert(newUrl); 
}); 

忽略前兩個警報,然後單擊運行。看看這兩個警報中的URL發生了什麼?您現在可以使用此代碼,並將其修改爲.replace('/#','?');。該功能將在您的URL中找到/#部分,並將其替換爲?。現在,您將所需的URL作爲字符串,只需在分享按鈕的正確位置使用該新網址即可。

+0

感謝您的答案。但我有一個問題,那就是發送另一個請求到服務器,不是嗎?我不想那 –

+0

沒有其他請求到服務器。頁面加載後,服務器可能會休息。在點擊事件時,URL會得到#someid前綴,然後您將使用JavaScript/jQuery完成剩下的工作:獲取當前url,將其當作字符串,將其替換爲另一個字符,將新字符串傳遞給共享按鈕。打開控制檯,你會發現所有的服務器請求。 –