字体大小调整器Javascript在IE8和IE7中不起作用

时间:2012-10-15 19:38:45

标签: javascript internet-explorer-8 fonts resize internet-explorer-7

我正在尝试在我公司的网站上放置一个字体大小调整器,因为很多客户都是老人,他们不知道Ctrl +“+”。

以下是我们的代码。在FF,Chrome和IE9下,缩放器工作正常。但不是在IE8和IE7中。我在这里省略了创建cookie /读取cookie部分。

function createCookie(name,value,days) {.....codes for create cookies......}

function changeFont(incfont) {
    try{
        var p = document.getElementsByClassName('resizable');
        for(n=0; n<p.length; n++) {
            if(p[n].style.fontSize) {
                var size = parseInt(p[n].style.fontSize.replace("px", ""));
            } else {
                var size = parseInt(window.getComputedStyle(p[n],null).getPropertyValue('font-size').replace("px", ""));
            }
            p[n].style.fontSize = size+ incfont + 'px';
        }

        p = document.getElementsByTagName('p');
        for(n=0; n<p.length; n++) {
            if(p[n].style.fontSize) {
                var size = parseInt(p[n].style.fontSize.replace("px", ""));
            } else {
                var size = parseInt(window.getComputedStyle(p[n],null).getPropertyValue('font-size').replace("px", ""));
            }
            p[n].style.fontSize = size+ incfont + 'px';
        }
    } catch(err) {}
}

function readCookie(name) { ....code for read cookies ....}

function increaseFontSize() {
    var inc=0;
    try {
        var x = readCookie('textsize')
        if (x && x!=0) {
            x = parseInt(x);
            inc = x;
        }
    } catch (e) {}

    if (inc<3) {
        inc++;
        changeFont(1);
        createCookie('textsize',inc,1);
    }
}

function decreaseFontSize() {
    var inc=0;
    try {
        var x = readCookie('textsize')
        if (x && x!=0) {
            x = parseInt(x);
            inc = x;
        }
    } catch (e) {}

    if (inc>0) {
        inc--;
        changeFont(-1);
        createCookie('textsize',inc,1);
    }
}

提前致谢! YN

2 个答案:

答案 0 :(得分:1)

您的解决方案对我来说似乎过于复杂,我建议您采用不同的方法,为页面主体设置基本文本大小,然后为其余元素设置字体大小(以百分比表示),当您想要调整文本大小时您需要做的所有网站:

$("body").css("font-size", newFontSize);

答案 1 :(得分:0)

getComputedStyle不适用于9之前的IE。

请参阅: https://developer.mozilla.org/en-US/docs/DOM/window.getComputedStyle

此处可能会提供修复程序:http://snipplr.com/view/13523/ 我没有测试它,

祝你好运!