웹 페이지에 기본 href가있는 경우 페이지를 새로 고치지 않고 # ElementId을 사용할 때 무시해도됩니까? location.href = "#_ ElementId_"를 사용할 때 기본 href를 무시하는 방법은 무엇입니까?
<html>
<head>
<base href="http://www.google.com/" />
</head>
<body>
<div id="test">
Test
</div>
<button onclick="location.href='#test'">Back to Test</button>
<a href="#test">Back to Test!</a>
</body>
</html>
내가 버튼이나 링크 중 하나를 클릭
, 나는 브라우저가 # 테스트를 div에 할 수있는 페이지를 가지고 싶어 :는 여기에 몇 가지 코드입니다. 기본 href 태그가 없으면 모든 것이 작동합니다. 그러나 base-href 태그를 사용하면 Javascript의 도움 없이는 할 수 없습니다. 좀 더 "자연스러운"방법으로 그것을 할 수있는 방법이 있습니까?
다음은 그냥 출력에 링크의 href 속성에서 전체 절대 URL이있을 수 있습니다
<html>
<head>
<base href="http://www.google.com/" />
<script type="text/javascript">
function goToElement(elementId) {
var baseTag = document.getElementsByTagName("base")[0];
var existingBaseHref = baseTag.href;
baseTag.href = "";
location.href = "#" + elementId;
baseTag.href = existingBaseHref;
}
</script>
</head>
<body>
<div id="test">
Test
</div>
<button onclick="goToElement('test')">Back to Test</button>
<a onclick="goToElement('test')">Back to Test!</a>
</body>
</html>
가 왜 기본 href가 있나요 서버에 HREF의 전체 경로를 추가? location.hash를 elementId로 설정하지 않는 이유는 무엇입니까? – mplungjan
@mplungjan - Base-href : 유감스럽게도 역사적인 코드 기반의 이유. :(location.hash에 - 코드 샘플을 제공 할 수 있습니까? – DashK
[[ 을 사용할 때 현재 페이지를 참조하는 앵커 링크 만들기] (http://stackoverflow.com/questions/8108836/make-anchor-links- 현재 사용중인 페이지 참조) –