1

모바일에 사용되는 SPA html5 웹 페이지가 있습니다. 세부 정보 페이지가 # 뒤에 설정되었으므로 사용자가 공유 버튼을 클릭하면 # 앞에 더 유익한 정보가 표시 될 때 보내지는 URL을 변경하고 싶습니다. 그런 식으로 나는 설명, 제목을 변경, 등등 ...의모바일 공유 버튼의 URL 수정

예 내가 원하는 :

URL을 브라우저에서 다음 "공유에 보낸 URL/# 아이디 = 1

URL을 ": url? id = 1

이제 어떻게 할 수 있습니까? 그러나 나는 서버에 또 다른 요청을하고 싶지 않습니다.

미리 감사드립니다.

+1

안녕하세요, https://developer.mozilla.org/en-US/docs/Web/API/document.location - 던지기'var _id = document.location.hash; alert (_id);'를 코드에 추가하십시오. 당신이 필요로하는 것이 있습니까? –

+0

브라우저 URL 위치가 아니라 단추에 대한 수정을 원한다. 서버에 대한 다른 요청을 실행하기 때문이다. –

+0

여기에서 물어 보았습니다 : http://stackoverflow.com/questions/824349/modify-the-url-without-reloading-the-page –

답변

1

나는 당신이 원하는 것을 이해하기를 바랍니다 : 현재 url을 잡아서 수정하고 싶습니까? 그렇다면 다음을 수행하십시오.

이 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을 문자열로 사용하고 해당 URL을 공유 버튼으로 올바른 위치에서 사용하십시오.

+0

주셔서 감사합니다. 하지만 질문이 있습니다. 서버에 또 다른 요청을 보내겠습니까? 나는 그것을 원하지 않는다. –

+0

서버에 대한 다른 요청이 없다. 페이지가로드되면 서버가 중단 될 수 있습니다. 클릭 이벤트에서 URL에 #someid라는 접두어가 붙으면 JavaScript/jQuery에서 나머지 작업을 수행합니다. 현재 URL을 가져 와서 문자열처럼 처리하고 일부 문자를 다른 문자로 바꾸고 새 문자열을 공유 버튼에 전달합니다. 콘솔을 열면 모든 서버 요청을 받게됩니다. –