首先想问一下这段代码是不是抄来的,参数 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 ]