Принудительное обновление при нажатии на ссылку с хэш-тегом - PullRequest
2 голосов
/ 12 ноября 2010

У меня есть страница с iframe, а затем ссылки на боковой панели.Ссылки на боковой панели ведут к статьям, загруженным в iframe.Каждая ссылка на боковой панели имеет такую ​​ссылку "/ news # 1940", где число, следующее за тегом #, соответствует идентификатору статьи.Затем я использую следующий 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-адрес на # номер, связанный со ссылкой, но не перезагружает страницу и не загружает статью в iframe).Любые идеи о том, как заставить эти ссылки работать на странице новостей?

Ответы [ 3 ]

0 голосов
/ 12 ноября 2010

вы пытались сделать $(document).trigger('load');

0 голосов
/ 16 января 2014

Я столкнулся с той же проблемой, используя хэши в ссылках ... страница не будет перезагружаться при изменении хэш-тега. Мое решение состояло в том, чтобы переключить хэш-тег для знака вопроса. Это привело к тому, что ссылки, заканчивающиеся на «? YourLinkLabel», фактически перезагружали страницу каждый раз, когда метка ссылки изменялась (изменение было вызвано нажатием на ссылку, атрибут href которой закончился на «? YourLinkLabel»).

0 голосов
/ 12 ноября 2010

Я думаю, вам нужно вызвать reload следующим образом:

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