使用jquery禁用Firefox和IE 7上的鼠标中键单击滚动

时间:2013-09-12 06:15:29

标签: jquery

如何使用jquery在Firefox和IE 7上禁用鼠标中键滚动:

以下功能无法在这些浏览器上运行:

$('body').mousedown(function(e)
{
  if((e.button === 1) || (e.button === 2)) 
  {
  e.preventDefault();     
  e.preventScrolling();       
  return false;   
   }
 });

1 个答案:

答案 0 :(得分:0)

(答案复制自:Disabling middle click scrolling with javascript

$("body").wrap(
  "<a href='javascript:void(0);'
  onclick='return false;'></a>"
);

通过将其包装在链接中(通过jquery wrap),浏览器认为它是一个链接,即使您拖动鼠标,也不要在中间点击滚动。通过这种设置和我的情况,有一些(次要的)陷阱。

Firefox会在您单击中键时打开一个新选项卡,但前提是您不拖动。当您单击中间,拖动或不拖动时,Opera将打开一个新选项卡。这就是为什么我用href ='javascript:void(0);'而不仅仅是href ='#' - 这样客户端的浏览器就不会加载整个页面,只是一个带有奇怪网址的空白页面。

但是这个解决方案就像Chrome和Safari上的魅力一样。它适用于IE8,除了现在当我左键单击并拖动时,它将指针更改为“无法执行该操作”符号,因为它认为我想将链接拖到某处。在较旧版本的IE上未经测试。