1

当一个人点击提交按钮时,我正在尝试使用 setInterval 检查哈希值的变化。当点击提交按钮时,页面根本不会改变。仅更改哈希值。我想使用 setInterval 重复查找哈希值,直到它转到 page2(以防输入的表单值不正确)。一旦检测到page2,它将清除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);
}
4

1 回答 1

2

一些改进:

//Inside startHash, change:
chkHash = setInterval('checkHash()', 5000);

//to
clearInterval(chkHash); //Don't create multiple timers
chkHash = setInterval(checkHash, 5000);

我还建议在 functionvar之前添加,这样变量就不会泄漏到全局范围内。hv = window.location.hashcheckHash

于 2011-10-04T18:58:05.000 回答