在 IE7 中禁用页面缩放 (jQuery/JS)

发布于 2024-07-22 20:54:32 字数 292 浏览 7 评论 0原文

我知道考虑到可访问性,这不是最好的做法,但我确实需要禁止用户在 IE7 中使用 CTRL+ 缩放页面。

我通过以下方式让它适用于其他浏览器,但 IE7 似乎忽略了“return false”:

$(window).keydown(function (e) {

     alert('key is down');   // this fires          
     return false;          // but this has no effect in IE7!
});

I know this is not the best thing to do in view of accessibility, but I have a genuine need to disable the user from zooming onto the page using CTRL+ in IE7.

I got it working for the other browsers the following way, but IE7 seems to ignore the "return false":

$(window).keydown(function (e) {

     alert('key is down');   // this fires          
     return false;          // but this has no effect in IE7!
});

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

雄赳赳气昂昂 2024-07-29 20:54:32

这是更好、更正确的方法:

$(document).ready(function() {
    var ctrl = false;
    $(document).keydown(function(e){    
        // disable ctrl + +/-
        if(ctrl && (e.keyCode == 107 || e.keyCode == 109)) {
            alert('Zoom is disabled!');
            return false;
        }
        if(e.keyCode == 17) {
            ctrl = true;

            // disable ctrl + scroll
            $(document).bind('scroll', function() {
                if(ctrl) {
                    alert('Zoom is disabled!');
                    return false;
                }                               
            });
        }
    })

    $(document).keyup(function(e) {
        if(e.keyCode == 17) {
            ctrl = false;
            $(document).unbind('scroll');
        }                  
    });                    
});

This is better and correct way:

$(document).ready(function() {
    var ctrl = false;
    $(document).keydown(function(e){    
        // disable ctrl + +/-
        if(ctrl && (e.keyCode == 107 || e.keyCode == 109)) {
            alert('Zoom is disabled!');
            return false;
        }
        if(e.keyCode == 17) {
            ctrl = true;

            // disable ctrl + scroll
            $(document).bind('scroll', function() {
                if(ctrl) {
                    alert('Zoom is disabled!');
                    return false;
                }                               
            });
        }
    })

    $(document).keyup(function(e) {
        if(e.keyCode == 17) {
            ctrl = false;
            $(document).unbind('scroll');
        }                  
    });                    
});
风月客 2024-07-29 20:54:32

我没有 IE7 来在 ATM 上测试,但这应该可以

$(window).keydown(function (e) {
  alert('key is down');   // this fires             
  e.preventDefault();     // This is a standard jQuery way of 
                          // preventing the default action
  return false;           // Therefore you shouldn't need this.
});

I don't have IE7 to test on ATM but this should do it

$(window).keydown(function (e) {
  alert('key is down');   // this fires             
  e.preventDefault();     // This is a standard jQuery way of 
                          // preventing the default action
  return false;           // Therefore you shouldn't need this.
});
老旧海报 2024-07-29 20:54:32

尝试将 keydown 附加到文档中:

$(document).keydown(function (e) {

     alert('key is down');
     return false;
});

Try attaching keydown to document instead:

$(document).keydown(function (e) {

     alert('key is down');
     return false;
});
四叶草在未来唯美盛开 2024-07-29 20:54:32

如果最终用户的浏览器在访问您的页面之前已经设置了缩放,则这是毫无意义的。

This is pointless if the end user's browser already has the zoom set before visiting your page.

北恋 2024-07-29 20:54:32

简单的答案。 对于 IE,您需要 Event.stop(e); 而不是 return false;

simple answer. for IE, you need Event.stop(e); instead of return false;

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文