2009-12-14 8 views
13

avoir une barre de commutation de style en haut de mon thème. Cela fonctionne pour la plupart, mais vous devez appuyer sur F5 ou sur Actualiser pour voir le nouveau style. Comment puis-je terminer ce jQuery à actualiser automatiquement lors d'une exécution réussie?jQuery Actualiser/Recharger la page après le succès

jQuery.fn.styleSwitcher = function(){ 
    $(this).click(function(){ 
     loadStyleSheet(this); 
     return false; 
    }); 
    function loadStyleSheet(obj) { 
     $('body').append('<div id="overlay" />'); 
     $('body').css({height:'100%'}); 
     $('#overlay') 
      .css({ 
       display: 'none', 
       position: 'absolute', 
       top:0, 
       left: 0, 
       width: '100%', 
       height: '100%', 
       zIndex: 1000, 
       background: 'black url(http://mytheme.com/loading.gif) no-repeat center' 
      }) 
      .fadeIn(500,function(){ 
       $.get(obj.href+'&js',function(data){ 
        $('#stylesheet').attr('href','css/' + data + '.css'); 
        cssDummy.check(function(){ 
         $('#overlay').fadeOut(500,function(){ 
          $(this).remove(); 
         }); 
        }); 
       }); 
      }); 
    } 
    var cssDummy = { 
     init: function(){ 
      $('<div id="dummy-element" style="display:none" />').appendTo('body'); 
     }, 
     check: function(callback) { 
      if ($('#dummy-element').width()==2) callback(); 
      else setTimeout(function(){cssDummy.check(callback)}, 200); 
     } 
    } 
    cssDummy.init(); 
} 
$.ajax({ 
    success:function(){ 
     $('#overlay').load('http://mytheme.com'); 
    } 
}); 

Répondre

59

Vous pouvez utiliser

success: function() { 
    window.location.reload(true); 
} 
0

window.location = window.location.pathname effectuera un rafraîchissement.

7
window.location.reload(true); 

fera l'affaire.

+0

Où dois-je mettre cela? – Greg

+0

Mickel l'a obtenu;)! – Wookai

+0

il suffit de mettre ce code dans le bloc '$ .get()', peut être juste au-dessus de la ligne où vous mettez à jour l'élément '# stylesheet'. – Firnas

0

vous pouvez utiliser cela pourrait vous aider à

je suis arrivé ce code de to refresh page

success: function(data){ 
    if(data.success == true){ // if true (1) 
     setTimeout(function(){// wait for 5 secs(2) 
      location.reload(); // then reload the page.(3) 
     }, 5000); 
    } 
} 
0

vous pouvez utiliser:

document.location.reload(); 
Questions connexes