2013-12-04 5 views
0

С этой JQuery я могу изменить URL моего сайта из mysite.com/#oldurl в mysite.com/newurl:Удалить символ # из URL с JQuery

$('.trigger').click(function() { 
    history.pushState('data', '', 'newurl'); 
}); 

Как я могу сделать это так, # всегда чередуется, а остальная часть URL остается. Так mysite.com/#page2 становится mysite.com/page2, mysite.com/#page3 становится mysite.com/page3 и т.д.

ответ

0
$('.trigger').click(function() { 
var final_url=""; 
if(your_url.indexOf('#') != -1) 
{ 
    final_url=your_url.replace('#', ''); 
} 

history.pushState('data', '', final_url); 
}); 
+0

В моей консоли им получить: неперехваченным ReferenceError: your_url не определен main.js: 5 (анонимной функции) main.js: 5 x.event.dispatch jquery.js: 5095 v.handle – Evans

+0

your_url - это переменная, которой должен быть присвоен url.did, вы назначаете your_url ссылку ..check..или не присвоены !! ! –

3

U можно использовать replace

var newurl=oldurl.replace("#",""); 
0

Возможно, я неверно истолковал вопрос. Моя мысль, когда вы говорите, # - это текущий URL-адрес минус хэш.

Вы можете создать элемент jQuery a с window.location для создания текущего URL-адреса. Используйте эту переменную для анализа текущих частей URL. Также вы можете проверить, доступно ли pushState до его использования.

if(history.pushState){ 
    var a = $('<a>', {href: window.location})[0]; 
    history.pushState(null, null, a.pathname+a.hash.substr(1)); 
} 
+0

Я не хочу менять ссылку. Мне нужно изменить URL-адрес страницы, чтобы удалить # из того, что там есть. Итак, mysite.com/#page2 будет изменен на mysite.com/page2 – Evans

+0

@jdln обновлен, чтобы использовать a.hash минус '#' –

0

Это мое использование "на серьезной ноте" 'ы код:

$('.trigger').click(function() { 

    var oldURL = window.location.hash; 
// console.log('newURL ', oldURL); 

    var final_url=""; 
    final_url=oldURL.replace('#', ''); 
    history.pushState('data', '', final_url); 

// console.log('final_url', final_url); 

}); 
Смежные вопросы