2013-04-14 1 views
1

Это, вероятно, простой вопрос, и я уверен, что здесь что-то не хватает.Отключить хеш-ссылки в URL-адресе JavaScript

Все, что я пытаюсь сделать, это отключить хэш-тег, связанный в URL-адресе. Например, если кто-то должен ввести URL-адрес: www.example.com/#anchor, он изменится на www.example.com и полностью избавится от хэша в URL-адресе.

Я бы даже не прочь отключить функцию и сохранить ее в URL-адресе в любом случае.

Вот то, что я до сих пор, но я не много удачи:

var locationHashIndex = window.location.href.lastIndexOf("#"), 
    station = window.location.href.slice(locationHashIndex + 1); 

    window.location.href = window.location.href.substr(0, locationHashIndex); 

Это позволяет перезагрузить страницу все с ума ... Не то, что я ищу. Любые мысли об этом?

ответ

3

Вы можете сделать:

if(window.location.hash){ 
    window.location.href = window.location.href.replace(/#.*/,''); 
} 
+0

Это все равно произойдет при каждой загрузке страницы, поскольку вы вообще не устанавливаете никаких условий для кода. –

+0

Забудьте, что я сказал ранее, это будет работать для моих целей. – Sethen

+0

рад, что это помогло. есть довольно немного помощи, доступной для прослушивания изменения хэша, если это то, что вы ищете. – karthikr

1

Вы хотите посмотреть в window.location.hash, которая хранит значение, которое вы пытаетесь удалить, так что вы хотите, чтобы только запустить свой код, если является Значение в этой переменной.

if(window.location.hash != ''){ 
    // code here 
} 
+0

Я обернул это вокруг моего текущего кода, и это, похоже, работает после обновления, но когда я набираю URL-адрес, он не работает. – Sethen

0

Если вы поддающийся с помощью JQuery см https://stackoverflow.com/a/8683139/618649 простого решения, чтобы просто отключить все URL, с # 'с в них.

В этом примере вы можете щелкнуть ссылку Go There весь день, и ничего не произойдет.

<html> 
    <head> 
     <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> 
    </head> 
    <body> 
     <a href="./#there"><span id="here">Go There...</span></a> 
     <br/>.<br/>.<br/>.<br/>.<br/>.<br/>.<br/>.<br/>. 
     <br/>.<br/>.<br/>.<br/>.<br/>.<br/>.<br/>.<br/>. 
     <br/>.<br/>.<br/>.<br/>.<br/>.<br/>.<br/>.<br/>. 
     <br/>.<br/>.<br/>.<br/>.<br/>.<br/>.<br/>.<br/>. 
     <br/>.<br/>.<br/>.<br/>.<br/>.<br/>.<br/>.<br/>. 
     <br/>.<br/>.<br/>.<br/>.<br/>.<br/>.<br/>.<br/>. 
     <span id="there">There...</span></a> 

     <script language="javascript"> 
     jQuery(function ($) { 
      $("a[href*=#]").click(function(e) { 
       e.preventDefault(); 
      }); 
     }); 
     </script> 
    </body> 
</html> 
Смежные вопросы