С помощью этого jQuery я могу изменить URL-адрес моего сайта с mysite.com/#oldurl на mysite.com/newurl:
$('.trigger').click(function() {
history.pushState('data', '', 'newurl');
});
Как я могу сделать так, чтобы # всегда был полосатым, а остальная часть URL осталась. Так mysite.com/#page2 становится mysite.com/page2, mysite.com/#page3 становится mysite.com/page3 и т.д.
$('.trigger').click(function() {
var final_url="";
if(your_url.indexOf('#') != -1)
{
final_url=your_url.replace('#', '');
}
history.pushState('data', '', final_url);
});
U может использовать replace
var newurl=oldurl.replace("#","");
Это мое использование кода "На серьезной ноте":
$('.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);
});
Возможно, я неправильно понимаю вопрос. Моя мысль, когда вы говорите #
- это текущий 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));
}
#
Пытаться:
newurl = oldurl.replace(/#/g,"/");