2011-01-11 43 views
5

可能重複:
Modifying document.location.hash without page scrolling當URL的片段標識符更改爲它時,我該如何防止瀏覽器跳轉到錨點?

我想取消的情況下,如果可能的話,但我沒有看到這方面的任何先例。現在假設我被限制使用同一個字符串作爲我的片段標識符和我的錨點的名稱。我需要攔截事件並以某種方式取消它。

UPDATE:這是Modifying document.location.hash without page scrolling

+0

改變了方法?由用戶? – 2011-01-11 01:43:13

回答

0

重複的可能呢?

<h1 id="header">home</h1> 
<ul> 
    <li><a href="#home">Home</a></li> 
    <li><a href="#product">Product</a></li> 
    <li><a href="#about">About</a></li> 
</ul> 
<script type="text/javascript"> 

    window.onload = function(e) { 
    var links = document.getElementsByTagName('a'); 
    for (var i=0; i < links.length; i++) { 
     links[i].addEventListener('click', function(e) { 
      var hash = this.href.split('#')[1]; 
      if(hash.length) { 
       if(hash == 'product') { 
        alert('Sorry, page in development'); 
        e.preventDefault(); 
       }else{ 
        document.getElementById('header').innerHTML = hash; 
       } 
      } 
     }, false); 
    }; 
    }; 
    // OR 
    window.onhashchange = function(e) { 
     var hash = window.location.hash.substr(1); 
     if(hash.length) { 
      if(hash == 'product') { 
       alert('Sorry, page in development'); 
       window.history.back(); 
      }else{ 
       document.getElementById('header').innerHTML = hash; 
      } 
     } 
    }; 

</script> 
相關問題