2016-06-17 4 views
0

** 업데이트 ** 에 대해 false를 반환합니다.이 작업을 수행하는 방법을 아는 사람은 누구나 할 수 있습니다. 다음 코드를 사용했습니다. 이것을 머리 부분에 붙여 넣어 어디서나 발사하십시오.모든 href의

history.pushState("", document.title, window.location.pathname); 

크레딧이 대답 https://stackoverflow.com/a/16719657/4367486

#의 ITEM_1이 순식간 단지 뚜렷한이며, 다음이 제거 된로 이동합니다. 나는 그것에 만족한다.

궁금한데, 이것이 가능합니까? 프론트 페이지에없는 3 페이지짜리 디자인이 있습니다. 그러나 나는 첫 페이지로 다시 링크하고 그 뒤에 www.example.com/#something을 가지고 싶지 않습니다. 그러나 방문자들이 방문한 페이지의 일부로 돌아가도록하고 싶습니다.

이 내 메뉴 구조입니다 :

<ul class="section table-of-contents hide-on-med-and-down"> 
<li><a href="<?php echo site_url(); ?>" style="display:none;">Home</a></li> 
<li><a href="<?php echo site_url(); ?>/#item_1">Item 1</a></li> 
<li><a href="<?php echo site_url(); ?>/#item_2">Item 2</a></li> 
<li><a href="<?php echo site_url(); ?>/#item_3">Item 3</a></li> 
<li><a href="<?php echo site_url(); ?>/#item_4">Item 4</a></li> 
<li><a href="<?php echo site_url(); ?>/#item_5">Item 5</a></li> 
<li><a href="<?php echo site_url(); ?>/#item_6">Item 6</a></li> 
<li><a href="<?php echo site_url(); ?>/#item_7">Item 7</a></li> 
</ul> 

내 페이지 구조 :

<article id="item_1" class="scrollspy"> 
    <div id="id_item_1"> 
    <div class="container"> 
    <h2><?php the_title(); ?></h2> 
     <div class="row">  
     ..... 
     </div> 
    </div> 
    </div> 
</article> 
<article id="item_2" class="scrollspy"> 
    <div id="id_item_2"> 
    <div class="container"> 
    <h2><?php the_title(); ?></h2> 
     <div class="row">  
     ..... 
     </div> 
    </div> 
    </div> 
</article> 

그래서면에 포인트로 이동 앵커를 사용하고 있습니다.

부드러운 스무딩을위한 스 니펫입니다. 그러나 페이지의 모든 A 요소를 대상으로합니다. 그것은

$(function() { 
    $('a[href*="#"]:not([href="#"])').click(function() { 
    if (location.pathname.replace(/^\//,'') == this.pathname.replace(/^\//,'') && location.hostname == this.hostname) { 
     var target = $(this.hash); 
     target = target.length ? target : $('[name=' + this.hash.slice(1) +']'); 
     if (target.length) { 
     $('html, body').animate({ 
      scrollTop: target.offset().top 
     }, 1000); 
     return false; 
     } 
    } 
    }); 
}); 

임, 내가 자바 스크립트를 사용할 필요가 추측 ...이 코드는, 내가 원하는 모든 요소에 return falst;을 수행하는 "다시"하는 것이 가능하지만 것 같이 코드를 작성하지 않았나요? 도움에 감사드립니다!

답변

0
'<script> 
function abc() 
{ 
    window.history.back(); 
} 
</script>' 
+0

그래, 나는 또한 그것에 대해 생각해 보았다. 그러나 방문자가 "seperate"페이지 중 하나에 있고 다른 "seperate"페이지로 이동 한 다음 탐색 메뉴의 항목을 클릭하면 " seperate "페이지가 아니라 앞 페이지. 그래서 사람은 날지 않을 것입니다. – Steggie

1

jquery-hashchange js 플러그인을 사용해보세요. 희망이 도움이 될 것입니다.
AngularJS는 1 페이지 웹 사이트에 매우 적합합니다. 경우 사람에
https://developer.mozilla.org/en-US/docs/Web/API/WindowEventHandlers/onpopstate

+0

흠, 나는 그것들을 조사 할 것이다. 그러나 이것을 달성하는 더 간단한 방법이 있어야합니다 ... 맞습니까? – Steggie

+0

예, HTML5 ** onpopstate ** 이벤트를 사용할 수 있습니다. 내 편집을 참조하십시오. 감사. – Neeraj

+0

그 내용을 읽어 보겠습니다 ... – Steggie

0

것은 무슨 방법을 알고 :

다음
window.onpopstate = function(event) { 
    alert("location: " + document.location + ", state: " + JSON.stringify(event.state)); 
}; 

그것을 위해 좋은 예입니다 당신이 HTML5 onpopstate 이벤트를 사용할 수 있습니다 https://docs.angularjs.org/api/ngRoute/directive/ngView

다른 방법 : 여기 예를 보려면 이 작업을 수행. 다음 코드를 사용했습니다. 이것을 머리 부분에 붙여 넣어 어디서나 발사하십시오.

history.pushState("", document.title, window.location.pathname); 

크레딧이 대답 https://stackoverflow.com/a/16719657/4367486

#의 ITEM_1이 순식간 단지 뚜렷한이며, 다음이 제거 된로 이동합니다. 나는 그것에 만족한다.

관련 문제