2016-03-08 5 views
0

Я хотел бы спросить вас, можно ли обновить страницу один раз с помощью jQuery.
Сценарий ниже обновит страницу, если хеш равен добавить.
Моя цель - обновить страницу, связанную с ней.Как обновить страницу один раз с помощью jQuery

var url  = window.location.href; 
var hash = url.substring(url.indexOf('#')+1); 

if(hash == 'add') { 
$(window).load(function(){ 

    location.reload(); 
}); 
} 
+0

не будет ваша страница просто обновляется бесконечно, если вы не удалите хэш при перезагрузке? – timothyclifford

+0

Вы можете использовать 'setTimeout (function() {// code here}, 2000)' – CMedina

+0

Если это не обязательно должен быть точно такой же URL-адрес, вы можете добавить параметр запроса и обновить только, если его нет , Поэтому вместо 'location.reload();' write 'location.href = location.href +"? Foo = bar "'. –

ответ

0

вы можете использовать печенье это пример

function executeOnce() { 
    var argc = arguments.length, bImplGlob = typeof arguments[argc - 1] === "string"; 
    if (bImplGlob) { argc++; } 
    if (argc < 3) { throw new TypeError("executeOnce - not enough arguments"); } 
    var fExec = arguments[0], sKey = arguments[argc - 2]; 
    if (typeof fExec !== "function") { throw new TypeError("executeOnce - first argument must be a function"); } 
    if (!sKey || /^(?:expires|max\-age|path|domain|secure)$/i.test(sKey)) { throw new TypeError("executeOnce - invalid identifier"); } 
    if (decodeURIComponent(document.cookie.replace(new RegExp("(?:(?:^|.*;)\\s*" + encodeURIComponent(sKey).replace(/[\-\.\+\*]/g, "\\$&") + "\\s*\\=\\s*([^;]*).*$)|^.*$"), "$1")) === "1") { return false; } 
    fExec.apply(argc > 3 ? arguments[1] : null, argc > 4 ? Array.prototype.slice.call(arguments, 2, argc - 2) : []); 
    document.cookie = encodeURIComponent(sKey) + "=1; expires=Fri, 31 Dec 9999 23:59:59 GMT" + (bImplGlob || !arguments[argc - 1] ? "; path=/" : ""); 
    return true; 
} 

Использование
executeOnce (обратный вызов [, thisObject [ , argumentToPass1 [, argumentToPass2 [, ... [, argumentToPassN]]]]], идентификатор [, onlyHere])

function reloadPage() { 
    var url  = window.location.href; 
    var hash = url.substring(url.indexOf('#')+1); 

    if(hash == 'add') { 
    $(window).load(function(){ 
     location.reload(); 
    }); 
    } 
} 

executeOnce(reloadPage, null, "", "idPage"); 
0

Это перезагрузит страницу.

window.location.reload();

Или вы имеете в виду?

var url = window.location.href; 
var hash = url.substring(url.indexOf('#')+1); 

if(hash === 'add') { 
    window.location.reload(); 
} 
+0

Привет, спасибо за ваше предложение , Я не правильно изложил свой вопрос. Я хотел бы обновить страницу один раз. Является ли это возможным? – Daniel

1
var url  = window.location.href; 
var hash = url.substring(url.indexOf('#')+1); 
if(hash=='add') { 
    window.location.href="#added"; 
} 

вы можете просто использовать приведенный выше код, чтобы достигнуть ваше требование. если #add находится в строке URL-адрес, он перезагружается один раз с новым URL, добавляя #added