Board logo

标题: [求助] javascript的网页变化,IE右健 [打印本页]

作者: kioskboy     时间: 2009-5-28 12:10    标题: [求助] javascript的网页变化,IE右健

1.
reg add "HKCU\Software\Microsoft\Internet Explorer\MenuExt\zoomIn" /f /ve /t REG_SZ /d "C:\Windows\zoomIn.htm"

2.
把zoomIn.htm复制到C:\Windows下了(内容如下)
<script language="javascript">
  function pluginExec(st) {
    var zoom = document.body.style.zoom;
    if(!zoom)
      zoom = '100%';
   
    if(zoom.match(/^\d+%$/)) {
      var iZoom = parseInt(zoom.slice(0, zoom.length-1));
      if(iZoom > 50) {
        iZoom = iZoom - 10;
        document.body.style.zoom = iZoom.toString() + '%';
      }
    }
  }
</script>

但是实现不了网页缩小的功能

[ Last edited by kioskboy on 2009-5-28 at 12:13 ]
作者: qinchun36     时间: 2009-8-6 04:18
首先想问一下这段代码是不是抄来的,参数 st 是干什么用的 ?
猜测可能是设置每次缩小的量,你代码里根本没用,我给你改改。

严重错误:
1. 最大的失误,你只声明了一个函数,代码中根本没有调用,所以无论怎么样肯定都没反应的,应该在 function 外面 调用 pluginExec(st) ;
2. 你这个页面是插件,因此被加载时不存在 document 对象,如果有的话,你说它应该是本身作为插件的这个页面的还是你点右键那个页面的?
事实上只能通过另一种途径获取要缩放那个页面的 document 对象。
3. zoom 本来就是数字,没不要再转字符,而且得到的值就是小数,没有 % 号,你那方法不行。
修改后的 htm 内容:
<script language="javascript">
  var document = external.menuArguments.document;  
  function pluginExec(st) {
    var zoom = document.body.style.zoom;
    if(!zoom) {
      zoom = 1;
    }
    if(zoom > 0.5) {
        zoom = zoom - st;
        document.body.style.zoom = zoom;
    }
  }
pluginExec(0.1);
</script>
还可以扩展成循环缩放,如果小于 50% 就设置为 150%:
<script language="javascript">
  var document = external.menuArguments.document;  
  function pluginExec(st) {
    var zoom = document.body.style.zoom;
    if(!zoom) {
      zoom = 1;
    }
    document.body.style.zoom = zoom>0.5 ? zoom - st : 1.5;
  }
pluginExec(0.1);
</script>
[ Last edited by qinchun36 on 2009-8-6 at 04:40 ]
作者: xswdong     时间: 2009-8-6 06:01
真不错的东东 下来玩玩 我觉得做成ie按钮会更好用些,毕竟右键不大方便
reg add "HKCU\Software\Microsoft\Internet Explorer\MenuExt\zoomIn" /f /ve /t REG_SZ /d "%~dp0缩放页面.htm"

reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Extensions\{00000000-0000-0000-0000-000000000022}" /v "ButtonText" /t REG_SZ /d "缩放页面" /f
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Extensions\{00000000-0000-0000-0000-000000000022}" /v "CLSID" /t REG_SZ /d "{1FBA04EE-3024-11D2-8F1F-0000F87ABD16}" /f
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Extensions\{00000000-0000-0000-0000-000000000022}" /v "Default Visible" /t REG_SZ /d "Yes" /f
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Extensions\{00000000-0000-0000-0000-000000000022}" /v "Script" /t REG_SZ /d "%~dp0缩放页面.htm" /f
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Extensions\{00000000-0000-0000-0000-000000000022}" /v "HotIcon" /t REG_SZ /d "%~dp0ICO_137.ico" /f
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Extensions\{00000000-0000-0000-0000-000000000022}" /v "Icon" /t REG_SZ /d "%~dp0ICO_137.ico" /f
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Extensions\{00000000-0000-0000-0000-000000000022}" /v "MenuText" /t REG_SZ /d "缩放页面" /f


问问qinchun36 如何做成这样的,点一下按钮缩小75%,再点恢复正常,再点放大2倍?
作者: qinchun36     时间: 2009-8-6 06:57


  Quote:
Originally posted by xswdong at 2009-8-6 06:01 AM:
真不错的东东 下来玩玩 我觉得做成ie按钮会更好用些,毕竟右键不大方便
reg add "HKCU\Software\Microsoft\Internet Explorer\MenuExt\zoomIn" /f /ve /t REG_SZ /d &qu ...

如何做成这样的,点一下按钮缩小75%,再点恢复正常,再点放大2倍?

根据自己需要写点条件判断语句控制 document.body.style.zoom 的值就行了。
<script language="javascript">
  var document = external.menuArguments.document;  
  function pluginExec() {
    var zoom = document.body.style.zoom;
    if(!zoom) {
      zoom = 1;
    }
    document.body.style.zoom = (zoom==1) ? 0.75 : (zoom==0.75 ? 2 : 1);
  }
pluginExec();
</script>

作者: qinchun36     时间: 2009-8-6 07:01
注意这里的缩放和右下角的不一样!

你点那个放大镜不会改变这里的 zoom 值,当然这里也不会改变放大镜那里的值。

实际的大小是 zoom 值 乘以 放大镜的值。
作者: xswdong     时间: 2009-8-6 23:14
谢谢qinchun36 完全满足要求,以后在网页中截图 就可以直接选取大小了 !!赞一个