Would anyone be able to modify this script so that it works in all browsers?
The javascript:
Expand|Select|Wrap|Line Numbers
- /*#######################################*/
- /* Beta FONT SIZER */
- /*#######################################*/
- window.onload = function() {
- _LSfontSizer.init(null);
- }
- origSize = new Array();
- var _LSfontSizer = {
- contentID:'content',// The outer most element of the text you want to resize
- debug: false, // Allow alert of tracking values
- enabeled: true, // Enable the fontsize tool to function single point to disable
- maxChange: 5, // Max number of increase/decreases in font size
- changeCnt: 0, // Track change counts
- defaultSize: '14', // NA - default font size
- maxSize: '20', // NA - max font size
- minSize: '8', // NA - minimum font size
- curSize: null, // loop container for current size and manipulation
- origSizeCnt: 0, // Track the item change count for reset value mapping
- echo: '', // debug value outputs
- activeFunc: null, // Store the active function that was called
- init: function(call){
- this.echo='';
- this.activeFunc = call;
- if(this.activeFunc == null) { // Setup Listeners onload
- try {
- Event.add($('fntSizeInc'),'mouseup',function() { _LSfontSizer.init('add'); });
- Event.add($('fntSizeDec'),'mouseup',function() { _LSfontSizer.init('dec'); });
- Event.add($('fntSizeReset'),'mouseup',function() { _LSfontSizer.subSetFunc('get'); });
- if(document.all) {
- $('fntSizeInc').style.cursor = "hand";
- $('fntSizeDec').style.cursor = "hand";
- $('fntSizeReset').style.cursor = "hand";
- } else {
- $('fntSizeInc').style.cursor = "pointer";
- $('fntSizeDec').style.cursor = "pointer";
- $('fntSizeReset').style.cursor = "pointer";
- }
- } catch(e) {
- //do nothing since the fontSizer interface is not present
- }
- //return; //End
- }
- if(this.activeFunc=='add') {
- if(this.changeCnt+1>this.maxChange)
- this.enabeled = false;
- else {
- this.changeCnt++; this.enabeled = true;
- }
- } else if (this.activeFunc=='dec') {
- if(this.changeCnt-1<(0-this.maxChange))
- this.enabeled = false;
- else {
- this.changeCnt--; this.enabeled = true;
- }
- }
- if(this.enabeled) {
- bodyObjs = $(this.contentID).childNodes;
- for(var i=0;i<bodyObjs.length;i++){
- if(bodyObjs[i].nodeType == 1) // IE
- this.traverseTree(bodyObjs[i])
- // END nodeType
- } // END for loop
- if(this.debug) alert(this.echo);
- }
- },
- set: function(obj) {
- this.curSize = getStyle(obj.parentNode,'font-size');
- if( this.curSize != 'undefined' && obj.nodeName=="#text" && obj.parentNode.nodeName != "DIV") {
- origSize.push(this.curSize);
- this.echo += "\n\rSET DEFAULT = " + this.curSize;
- }
- },
- get: function(obj) {
- this.curSize = origSize[this.origSizeCnt];
- if( this.curSize != 'undefined' && obj.nodeName=="#text" && obj.parentNode.nodeName != "DIV") {
- var newSize = parseInt((this.curSize.substring(0,this.curSize.length-2))) + 1;
- obj.parentNode.style.fontSize = newSize + this.curSize.substring(this.curSize.length-2,this.curSize.length);
- this.echo += "\n\rRESET TO DEFAULT:: "+this.curSize+" >> Parent = "+obj.parentNode.nodeName+" >> This = "+obj.nodeName;//+" :: nodeValue "+obj.nodeValue;
- this.origSizeCnt++;
- }
- },
- add: function(obj) {
- this.curSize = getStyle(obj.parentNode,'font-size');
- if( this.curSize != 'undefined' && obj.nodeName=="#text" && obj.parentNode.nodeName != "DIV") {
- var newSize = parseInt((this.curSize.substring(0,this.curSize.length-2))) + 1;
- obj.parentNode.style.fontSize = newSize + this.curSize.substring(this.curSize.length-2,this.curSize.length);
- this.echo += "\n\rADD:: "+this.curSize+" >> Parent = "+obj.parentNode.nodeName+" >> This = "+obj.nodeName;//+" :: nodeValue "+obj.nodeValue;
- this.origSizeCnt++;
- }
- },
- dec: function(obj) {
- this.curSize = getStyle(obj.parentNode,'font-size');
- if( this.curSize != 'undefined' && obj.nodeName=="#text" && obj.parentNode.nodeName != "DIV") {
- var newSize = parseInt((this.curSize.substring(0,this.curSize.length-2))) - 1;
- obj.parentNode.style.fontSize = newSize + this.curSize.substring(this.curSize.length-2,this.curSize.length);
- this.echo += "\n\rDEC:: "+this.curSize+" >> Parent = "+obj.parentNode.nodeName+" >> This = "+obj.nodeName;//+" :: nodeValue "+obj.nodeValue;
- this.origSizeCnt++;
- }
- },
- traverseTree: function(tree){
- var cnt = null;
- if(tree.hasChildNodes() && tree.nodeName != "P") { // Don't process paragraph sub elements
- var nodes = tree.childNodes.length;
- for(var i=0; i<tree.childNodes.length; i++) {
- if(tree.childNodes[i].nodeName != "A"){
- this.traverseTree(tree.childNodes[i]);
- cnt++;
- }
- this.echo += " :: "+cnt+" :: ";
- }
- } else if (tree.nodeName == "P") { // Only pass the outer paragraph tag once to limit is change occurance to one
- if(this.activeFunc == 'add')
- this.add(tree.childNodes[0]);
- else if (this.activeFunc == 'dec')
- this.dec(tree.childNodes[0]);
- else if (this.activeFunc == 'get')
- this.get(tree.childNodes[0]);
- else
- this.set(tree.childNodes[0]);
- } else {
- if(this.activeFunc == 'add')
- this.add(tree);
- else if (this.activeFunc == 'dec')
- this.dec(tree);
- else if (this.activeFunc == 'get')
- this.get(tree);
- else
- this.set(tree);
- }
- },
- subSetFunc: function(val) {
- this.origSizeCnt = 0;
- this.echo += "\n\rOrigSize Length = "+ origSize.length;
- for(i=0;i<origSize.length;i++) {
- this.echo += "\n\rOrigSize["+ i + "] = "+origSize[i];
- }
- this.enabeled = true;
- this.changeCnt = 0;
- this.init(val);
- }
- }
- function $(element) {
- var elements = new Array();
- for (var i=0;i<arguments.length;i++) {
- var element = arguments[i];
- if (typeof element == 'string') element = document.getElementById(element);
- if (arguments.length == 1) return element;
- elements.push(element);
- }
- return elements;
- }
- function getStyle(el,styleProp)
- {
- var x = el;
- if (x.currentStyle)
- var y = x.currentStyle['fontSize'];
- else if (window.getComputedStyle)
- try { var y = document.defaultView.getComputedStyle(x,null).getPropertyValue('font-size'); }
- catch(e) {
- //donothing
- }
- return y;
- }
- var Event = {
- add: function(obj,type,fn) {
- if (obj.attachEvent) {
- obj['e'+type+fn] = fn;
- obj[type+fn] = function() { obj['e'+type+fn](window.event); }
- obj.attachEvent('on'+type,obj[type+fn]);
- } else
- obj.addEventListener(type,fn,false);
- },
- remove: function(obj,type,fn) {
- if (obj.detachEvent) {
- obj.detachEvent('on'+type,obj[type+fn]);
- obj[type+fn] = null;
- } else
- obj.removeEventListener(type,fn,false);
- }
- }
Expand|Select|Wrap|Line Numbers
- <img src="fnt_sizer_sub.gif" id="fntSizeDec" alt="decrease font size" />
- <span id="fntSizeReset" style="padding:0 3px;" >Font Resize</span>
- <img src="fnt_sizer_add.gif" alt="Increase font size" id="fntSizeInc" />
- <div id="content">
- <p>This is pages font..I want to resize it.</p>
- </div>