0

假设我有一个链接,当点击链接时会淡出整个页面。我淡出页面的原因是因为下一页即将加载,但尚未加载。我可以使用pointer-events: none它将禁用任何鼠标事件,直到加载下一页。

假设它是用键盘完成的,我可以使用以下方法来防止双输入,或者完全禁用其中的所有元素,例如,tab-enter 也会以这种方式被禁用。

parent.onkeydown = fals
parent.onkeyup = fals
parent.onkeypress = fals
function fals() {return false}

这适用于短时间的加载,但如果加载时间较长,用户可能会注意到以下困难。

  • 无法离开 a 标签。
  • 无法使用几个可以控制浏览器的键盘快捷键。
  • 能够从地址栏进入禁用区域。

除了为所有子元素设置 onfocus=blur 之外,是否有一种现代而巧妙的方法来防止这三个问题?我今天不关心IE。

4

1 回答 1

0

我认为处理你所说的事情的普遍接受的方式是使用模态的,也就是说,当他们点击那个链接时,你会弹出一个框,上面写着“处理”或类似的东西,然后你创建一个全屏 div,其 z-index 高于其他所有内容,因此用户无法单击/与屏幕上的其他任何内容进行交互,直到您完成正在做的任何事情。

有关我正在谈论的示例,请参阅http://twitter.github.com/bootstrap/javascript.html#modals 。

于 2012-10-19T18:11:45.897 回答