Я пытаюсь использовать setInterval для проверки изменения хеш-значения, когда человек нажимает кнопку отправки. При нажатии кнопки отправки страница не изменится вообще. Меняется только значение хеша. Я хочу использовать setInterval для многократного поиска хеш-значения, пока оно не перейдет на страницу 2 (в случае, если введенные значения формы неверны). Как только страница2 будет обнаружена, setInterval очистится, но эта часть не работает.
var chkHash;
var hashval = window.location.hash;
var sb = document.getElementById("submitButton").onclick = function() {
startHash();
}
function checkHash() {
hv = window.location.hash;
if (hashval !== hv ) { hashval = hv; }
if(/page2/i.test(hv)) {
clearHash();
}
}
function startHash() {
chkHash = setInterval('checkHash()', 5000);
}
function clearHash() {
clearInterval(chkHash);
}
startHash
нет интервала, потому что, если вы уже установили его, идентификатор будет потерян, и он будет продолжаться вечно. Поэтому, если вы дважды щелкнете, ваш код не будет работать в его нынешнем виде. Кстати, я предлагаю вам поискатьwindow.onhashchange
и плагины, которые сделают это за вас. jquery связывает это и подгоняет для совместимости. - person davin   schedule 04.10.2011