我想让用户能够增加/减少Web应用内部内容的呈现大小。
CTRL + 和 CTRL - 功能(或 CTRL 1 到 CTRL 9 )Chrome& Firefox很方便 - 但是有没有办法从JavaScript执行这些功能?
澄清: 我希望用户能够通过鼠标点击而不是按键来实现这一点,所以像这样:
function resize_rendering() {
// code that executes ctrl+ or crtl-
}
答案 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;
} );