0

我想在我公司的網站上放一個字體縮放器,因爲我們的很多客戶都是老人,他們不知道Ctrl +「+」。字體大小寫JavaScript不工作在IE8和IE7

這裏是我們的代碼。該調整器在FF,Chrome和IE9下正常工作。但不是在IE8和IE7中。我忽略了在這裏創建cookie /讀取cookies部分。

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

+0

從一個副本:http://jsfiddle.net/zgqN7/2/ –

回答

1

您的解決方案似乎對我來說過於複雜,我會建議您使用不同的方法,爲頁面主體設置基本文本大小,然後爲其餘元素設置字體大小百分比,這樣當您想調整大小時所有網站的文本,你只需要做:

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

非常感謝尼爾森爲您的答案!你的想法很有道理。作爲一個JavaScript新手,這個下面的問題可能看起來很愚蠢。我可以使用TagName或ClassName替換$(「body」)嗎?由於我們不改變整個身體區域的字體大小。再次感謝! -YN – user1748088