在Firefox和&amp ;;中使用Javascript到CTRL +和CTRL-铬

时间:2011-07-15 14:02:57

标签: javascript firefox google-chrome

我想让用户能够增加/减少Web应用内部内容的呈现大小。

CTRL + CTRL - 功能(或 CTRL 1 CTRL 9 )Chrome& Firefox很方便 - 但是有没有办法从JavaScript执行这些功能?

澄清: 我希望用户能够通过鼠标点击而不是按键来实现这一点,所以像这样:

function resize_rendering() {
    // code that executes ctrl+ or crtl-
}

4 个答案:

答案 0 :(得分:3)

浏览器缩放级别是用户设置,可用于访问目的;网站开发人员并不打算知道或关心缩放级别是什么,所以我希望您无法完全按照自己的意愿行事。当然,以跨浏览器工作的方式很难做到正确。

通常的方法是使用一个改变基本字体大小的大小调整小工具。

如果您网站中的所有字体大小都是em个单位,那么您可以通过一次CSS更改来更改网站上所有文字的大小。

因此,您可以在网站上使用一组按钮,使用Javascript将font-size元素的<body>设置为(例如)12,14,16或18像素,具体取决于元素点击。

这里有一篇关于这项技术的文章:http://labnol.blogspot.com/2006/12/allow-site-visitors-to-change-font.html

答案 1 :(得分:1)

您不被设计允许。您无法通过Javascript更改用户的浏览器设置。

您可以执行其他操作,例如修改网页上的所有CSS以将所有内容缩放到模拟一个CTRL-,但这就是全部。

在某些浏览器中,您可以在浏览器执行之前捕获CTRL +/-,从而允许您停止发生这些事件。但你不能做反对 - 你不能从你自己的剧本中引起这些事件。

答案 2 :(得分:0)

John Resig的这个库here是一个jQuery插件,可以完成这项工作。有一些样品。它也非常容易连接键组合。

答案 3 :(得分:0)

您可以截取常规键事件处理程序中的键击(例如window对象上的键击),检查它是否是您要查找的键,如果是,请调用stopPropagation()在event参数上(并返回false)以防止浏览器自己处理它。

然后您必须自己执行大小调整操作,例如使用JavaScript修改样式表。

window.addEventListener( 'keydown', function( e ) {
    if ( /* check e.keyCode etc. */ ) {
        // modify global style to increase/decrease font size
        e.stopPropagation();
        return false;
    } );