0

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

以下功能不适用于这些浏览器:

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

1 回答 1

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='#'--这样客户端的浏览器就不会加载整个页面,而只是一个带有奇怪 url 的空白页面。

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

于 2013-09-12T06:21:37.813 回答