2017-07-15 1 views
0

J'essaie d'utiliser le jQuery pour modifier la chaîne de requête url sans recharger la page, le lien peut être comme ce www.example. com/innerpage? tab = xyz & para = abc .. Je veux ajouter ces requêtes lorsque je clique sur un lien dans cette page interne. Donc, lorsque vous copiez le lien et partagez avec d'autres, je vais lire ces requêtes pour ouvrir à nouveau la section ciblée!Modifier la chaîne de requête URL ou ajouter si n'existe pas lorsque vous cliquez sur un lien sans recharger la page

function getParameterByName(name) { 
     url = window.location.href; 
     name = name.replace(/[\[\]]/g, "\\$&"); 
     var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"), 
      results = regex.exec(url); 
     if (!results) return null; 
     if (!results[2]) return ''; 
     return decodeURIComponent(results[2].replace(/\+/g, " ")); 
} 

$('.alink').click(function(e){ 
    e.preventDefault(); 
    var _link = $(this); 
    var _target = _link.attr('href').substr('1'); 
var target = $('div[id="'+_target+'"]'); 
    $('html, body').animate({ 
      scrollTop: target.offset().top 
     }, 500); 


    var urlq = getParameterByName('tab'); 
    if(urlq != null){ 
     location.href.replace("tab="+urlq, "tab="+_target); 
    } else { 
     location.href+= "?tab="+_target; 
    } 
    console.log(urlq); 
}); 

départ mon code sur mon codepen

Répondre

0
var queryString = 'yourblock1'; 
    var pageUrl = '?' + queryString; 
    window.history.pushState('', '', pageUrl); 

Mais une fois que vous rechargeant devriez vérifier les paramètres et faites défiler jusqu'à bloquer à l'aide js.

+0

Oui j'ai déjà fait le défilement après avoir lu la chaîne de requête .. merci! – user3003810