按任何键盘按钮将删除哈希URL

时间:2015-10-22 18:06:27

标签: javascript jquery

我在我维护的网站上发现了一个错误。如果您单击键盘上的任何按钮,将删除哈希URL并且浏览器跳转到页面顶部。我认为这是我的平滑滚动功能的一个问题,但我完全删除了它,没有任何改变。我还尝试为箭头点击设置默认操作,但它仍然删除了哈希网址。

您可以看到它here正在发生,您只需点击键盘上的任意按钮即可查看问题。

无论如何都要阻止浏览器删除哈希网址?

1 个答案:

答案 0 :(得分:2)

问题似乎出现在您网站中包含的名为app.js的Javascript文件中。

在某处,您检查键盘输入如下:

$(document).keyup(function(e) {
  if(e.keyCode == 37 || 39) { //left right arrow
    var activeMem = $('.detail-active').find(textCenter).text();
    var spaces = activeMem.toString().replace(/ /g, '-');
    var comma = spaces.replace(',', '').toLowerCase();
    var clean = comma.replace('.', '').toLowerCase();
    if (clean.substring(clean.length-1) == ".") {
      clean = clean.substring(0, clean.length-1);
    }
    var hash = '#'+clean;
    location.hash = hash;
  }
});

问题在于这种情况if(e.keyCode == 37 || 39)。 它应该是if(e.keyCode == 37 || e.keyCode == 39)