【问题标题】:Force Refresh when Link with Hash Tag is Clicked单击带有哈希标记的链接时强制刷新
【发布时间】:2011-05-09 05:14:16
【问题描述】:

我有一个带有 iframe 的页面,然后是侧边栏链接。侧边栏链接指向 iframe 中加载的文章。每个侧边栏链接都有一个类似“/news#1940”的链接,其中# 标签后面的数字对应于文章的 ID。然后,我使用以下 jQuery 来加载我们网站上的新闻页面,然后在 iframe 中加载相应的文章。

  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);
        }

当您单击外部页面的侧边栏链接时,这非常有用。但是,当您在新闻页面上单击侧边栏链接时,它不起作用(它将 URL 更改为与链接关联的#number,但不会重新加载页面或在 iframe 中加载文章)。有关如何使这些链接在新闻页面上正常工作的任何想法?

【问题讨论】:

    标签: jquery iframe hash reload


    【解决方案1】:

    我认为你需要像这样调用 reload:

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

    【讨论】:

    • 他的代码正在加载基于片段的东西,而不是加载只是再次强制加载事件,它应该拿起它并触发他的代码吗?
    • 另外,我试过了, $('#news-links a').click(function(){ window.location.reload(); });但这只是重新加载页面,但不再将窗口的 URL 更改为与侧边栏链接的 href 相对应。
    【解决方案2】:

    你试过$(document).trigger('load');

    【讨论】:

    • 你认为我需要在哪里重新加载(无论我使用哪个版本)?我应该把它放在侧边栏链接的点击状态:$('#news-links a').click(function(){//reload here });。我想我尝试过这样做,但似乎没有用。
    【解决方案3】:

    我在链接中使用哈希时遇到了同样的问题……当哈希标记更改时,页面不会重新加载。我的解决方案是将哈希标签换成问号。这导致以“?YourLinkLabel”结尾的链接在每次链接标签更改时实际重新加载页面(更改是通过单击 href 属性以“?YourLinkLabel”结尾的链接触发的)。

    【讨论】:

      猜你喜欢
      • 2013-06-20
      • 2017-11-18
      • 2012-07-01
      • 2023-03-12
      • 1970-01-01
      • 2018-04-17
      • 2014-02-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多