我正在尝试在我公司的网站上放置一个字体大小调整器,因为很多客户都是老人,他们不知道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
答案 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/ 我没有测试它,
祝你好运!