Перезагрузите HTML-страницу только один раз, используя JavaScript - PullRequest
0 голосов
/ 28 мая 2011

Как я могу перезагрузить основную веб-страницу HTML только один раз? Я использую history.go(0); с функцией onLoad в теге body, но я хочу запустить его только один раз. Пожалуйста, имейте в виду, что я использую iframe, поэтому невозможно использовать код следующих типов:

<script language=" JavaScript" ><!--
function MyReload()
{
window.location.reload();
}
//--></script>

<Body onLoad=" MyReload()" > 

вышеуказанный код не работает для меня

но приведенный ниже код работает хорошо, но проблема в том, что он мне нужен для загрузки один раз

<BODY BGCOLOR=#FFFFFF background="../images/Index_04.jpg" onLoad="history.go(0)" >

примечание: я использую 2 iframe, когда пользователь нажимает на ссылку главной страницы, страница загружается в iframe, чем я хочу перезагрузить всю страницу с текущей страницей iframe.

Ответы [ 4 ]

5 голосов
/ 28 мая 2011

Вы можете использовать querystring в конце URL-адреса страницы (например,? R) и проверить его перед перенаправлением, как если бы оно существовало, перенаправление уже выполнено.

if(window.location.href.substr(-2) !== "?r") {
  window.location = window.location.href + "?r";
}

Отказ от ответственности: я согласен с другими, что у вас, вероятно, есть лучшее решение - и вам никогда не нужно обновлять «только один раз».

Объяснение использования

ВнизуВаша страница, чуть выше </body>, вы должны поместить это: -

<script type="text/javascript">
   if(window.location.href.substr(-2) !== "?r") {
      window.location = window.location.href + "?r";
    }
</script>

Вот и все.

4 голосов
/ 19 февраля 2013
 <script type="text/javascript">
        $(document).ready(function(){

            //Check if the current URL contains '#' 
            if(document.URL.indexOf("#")==-1)
            {
                // Set the URL to whatever it was plus "#".
                url = document.URL+"#";
                location = "#";

                //Reload the page
                location.reload(true);

            }
        });
    </script> 

Из-за условия if страница перезагрузится только один раз. Надеюсь, это поможет.

0 голосов
/ 01 февраля 2018

Вот еще одно решение, которое работает для меня, используя localStorage. В этом решении нам не нужно изменять существующий URL.

<script type='text/javascript'>
 (function()
 {
  if( window.localStorage ){
    if(!localStorage.getItem('firstReLoad')){
     localStorage['firstReLoad'] = true;
     window.location.reload();
    } else {
     localStorage.removeItem('firstReLoad');
    }
  }
 })();
</script>
0 голосов
/ 28 мая 2011

Единственный способ, которым я могу придумать, - это использовать куки (или, если у вас на правильной платформе сеансы) и пометить при первой перезагрузке, переменные также могут работать в этом случае, потому что мы говоримоб IFRAME, но я никогда не пробовал такого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...