2010-11-12 4 views
2

J'ai une page avec un iframe, puis des liens sidebar. Les liens de la barre latérale mènent aux articles chargés dans l'iframe. Chaque lien de la barre latérale a un lien comme celui-ci "/ news # 1940", où le numéro suivant la balise # correspond à l'ID de l'article. J'utilise ensuite le jQuery suivant pour charger la page de nouvelles sur notre site et ensuite l'article approprié dans l'iframe.Force Refresh lorsque le lien avec le tag Hash est cliqué

var $news_story  = $(window.location.hash.substring(1)), 
     $news_number  = $news_story.selector, 
     $news_url   = 'http://www.articleurlhere.com/ID=' + $news_number, 
     $news_url_default = 'http://www.main_news_feed_url_here.com'; 
     var $url   = location.pathname; 

     if ($news_number.length>0) { 
      $('#news-feed').attr('src', $news_url); 
     } else { 
      $('#news-feed').attr('src', $news_url_default); 
     } 

Cela fonctionne très bien lorsque vous cliquez sur les liens de la barre latérale d'une page externe. Cela ne marche cependant pas quand vous cliquez sur un lien de barre latérale alors que sur la page de nouvelles (il change l'URL au nombre # associé au lien, mais ne recharge pas la page ou ne charge pas l'article dans le iframe). Des idées sur la façon de faire ces liens fonctionnent sur la page de nouvelles?

Répondre

0

Je pense que vous devez appeler reload comme ceci:

window.frames["news-feed"].location.reload(); 
+0

son code charge quelque chose basé sur le fragment, au lieu de charger juste forcer l'événement de charge à nouveau et il devrait le ramasser et tirer son code non? – dstarh

+0

En outre, j'ai essayé, $ ('# news-links a'). Cliquez sur (function() { window.location.reload(); }); mais cela recharge simplement la page, mais ne change plus l'URL de la fenêtre pour correspondre au href du lien sidebar. – Andrew

0

Avez-vous essayé de faire $(document).trigger('load');

+0

Où pensez-vous que je dois mettre ce rechargement (quelle que soit la version que j'utilise)? Dois-je le mettre dans un clic sur les liens de la barre latérale: $ ('# news-links a'). Click (function() {// recharger ici}) ;. Je pense que j'ai essayé de le faire et ça n'a pas l'air de marcher. – Andrew

0

je suis tombé sur le même problème en utilisant hash dans les liens ... la page ne serait pas recharger lorsque l'étiquette de hachage a changé. Ma solution était d'éteindre l'étiquette de hachage pour un point d'interrogation. Cela a provoqué des liens se terminant par '? YourLinkLabel' pour recharger réellement la page chaque fois que l'étiquette du lien a changé (le changement a été déclenché en cliquant sur un lien dont l'attribut href se terminait par '? YourLinkLabel').

Questions connexes