467,915 Members | 1,682 Online
Bytes | Developer Community
New Post

Home Posts Topics Members FAQ

Post your question to a community of 467,915 developers. It's quick & easy.

Javascript, CSS e cambio stile

Ciao a tutti,
vi spiego il mio problema

Ho una pagina HTML che referenzia un CSS esterno.
Ho alcuni elementi HTML che appartengolo ad una classe (chiamiamola
"class1").
Avrei la necessità, alla pressione di un tasto di lanciare un javascript che
mi cambia un attributo della classe "class1" (per esempio 'font-size', ma
potrebbe essere qualsiasi altro attributo).
Teoricamente potrei fare un loop in tutti gli elementi della pagina e
cambiare le caratteristiche dello stile di ciascun elemento appartenente
alla classe "class1" (oppure cambiare addirittura il nome della classe).
Mi chiedevo invece se non era possibile cambiare le caratteristiche della
classe "class1" in modo che tutti gli elementi appartenenti a quella classe
"magicamente" ereditino il cambiamento (eviterei così il loop).

E' possibile una cosa del genere?

Ah, la mia applicazione web sarà utilizzata solo con IE5 per cui vanno bene
anche consigli non "standard".

Grazie in anticipo,
Davide.
Jul 23 '05 #1
  • viewed: 1946
Share:
15 Replies
Davide R. wrote:
Avrei la necessità, alla pressione di un tasto di lanciare un javascript che
mi cambia un attributo della classe "class1" (per esempio 'font-size', ma
potrebbe essere qualsiasi altro attributo).
[...]
Mi chiedevo invece se non era possibile cambiare le caratteristiche della
classe "class1" in modo che tutti gli elementi appartenenti a quella classe
"magicamente" ereditino il cambiamento (eviterei così il loop).

E' possibile una cosa del genere?


Please search before you post:
<news:40**************@PointedEars.de>

BTW:
AFAIS chances to get a response are higher if you write
in English here. But it.comp.lang.javascript exists, too.
PointedEars
Jul 23 '05 #2
A lot of css manipulation functions (that manipulate also whole classes or
single rules within them) is at
http://www.unitedscripters.com/scripts/css1.html

I think there you can find the script(s) you're looking for (for NS5 and IE5
both), or something very very close indeed
ciao
Alberto
Avrei la necessità, alla pressione di un tasto di lanciare un javascript che mi cambia un attributo della classe "class1" (per esempio 'font-size', ma potrebbe essere qualsiasi altro attributo).
[...]
Mi chiedevo invece se non era possibile cambiare le caratteristiche della classe "class1" in modo che tutti gli elementi appartenenti a quella classe "magicamente" ereditino il cambiamento (eviterei così il loop).

E' possibile una cosa del genere?

Jul 23 '05 #3
Alberto wrote:
A lot of css manipulation functions (that manipulate also whole classes or
single rules within them) is at
http://www.unitedscripters.com/scripts/css1.html
This is just yet another junk produced by script kiddies. eval()
everywhere, unchecked DOM mixes everywhere, spaghetticode everywhere.
I strongly recommend *against* it.
[Top post]


Please do not do that, see the FAQ.
PointedEars
Jul 23 '05 #4
Where have you found eval() calls in those codes?
"Cannot find string "eval("

As for the junk, that website is ranked among the top 20 about javascript.

And again:
"Cannot find string "eval("
in the whole document.

Also, please, identify what you mean by spaghetti codes; since it is
"everywhere" accordingly to you, point it out in these functions:

function addClass(sheetIndex, definition, optionalIndex){
if(!document.getElementById || !document.styleSheets.length){ return
false; };
sheetIndex=(sheetIndex && !isNaN(parseFloat(sheetIndex)))?
parseFloat(sheetIndex):0;
if(sheetIndex>document.styleSheets.length-1){ return false; };
if(!definition || definition.indexOf("{")==-1 ||
definition.indexOf("}")==-1 ){ return false; };
var obj=document.styleSheets[sheetIndex];
optionalIndex=(!optionalIndex)?1:
(obj.rules)?
obj.rules.length : obj.cssRules.length;
if(obj.addRule){
definition=definition.split("{");
obj.addRule(definition[0], definition[1], optionalIndex);
}
else if(obj.insertRule){
obj.insertRule(definition, optionalIndex);
};
return true;
/* keep this comment to reuse freely:
http://www.unitedscripters.com */};

function allClasses(indexOrObject){
if(!document.getElementById || !document.styleSheets.length){ return
false; };
indexOrObject=(indexOrObject && !isNaN(parseFloat(indexOrObject)))?
parseFloat(indexOrObject):
(typeof(indexOrObject)=="object")?indexOrObject:0;
var isObj=(typeof(indexOrObject)=="object")?1:0;
if(!isObj && typeof(document.styleSheets[indexOrObject])=="undefined"){
return false; };
var output=new Array(0);
var RULES=( typeof(document.styleSheets[0].rules)!="undefined" )?
"rules":"cssRules";
var object=(!isObj)?
document.styleSheets[indexOrObject]:indexOrObject;
for(var i=0; i<object[RULES].length; i++){
var OL=++output.length-1;
output[OL]=
new Array(
object[RULES][i],
object[RULES][i].selectorText,
new Array(0), new Array(0), new Object(), i, indexOrObject
);
for(var grab in object[RULES][i].style){
var current=object[RULES][i].style[grab];
if(current!="" && typeof(current)!="function"){
output[OL][2][ ++output[OL][2].length-1 ]=grab;
output[OL][3][ ++output[OL][3].length-1 ]=current;
output[OL][4]=object[RULES][i].style;
};
};
};
return output;/* keep this comment to reuse freely:
http://www.unitedscripters.com */};

function findClass(wantedClass, beyondMatch){
/*REQUIRES the allClasses function in the same document*/
if(!wantedClass || !document.styleSheets){return false;};
if(!window["allClasses"]){ return false; };
var tempClasses=new Array(0);
this.compare=function(arg1, arg2){
if(arg1==arg2){return true}
else{
arg2=arg2.replace(/\./gi,"");
var expr=new RegExp("\\b"+arg2+"\\b");
return expr.test(arg1);
};
}
var output=new Array(0);
outer:
for(var s=document.styleSheets.length-1; s>=0; s--){
tempClasses=allClasses(s);
for(var t=0; t<tempClasses.length;t++){
if(this.compare(tempClasses[t][1], wantedClass)){
var OL=++output.length-1;
output[OL]=new Array(0,0,0,0)
output[OL][0]=s;
output[OL][1]=t;
output[OL][2]=document.styleSheets[s];
output[OL][3]=tempClasses[t];
if(!beyondMatch){ return output; }
};
};
};
return output;/* keep this comment to reuse freely:
http://www.unitedscripters.com */}

function readClass(cssIndex, ruleIndex, property, optionalID){
if(!document.getElementById){ return false; };
if(optionalID){
return (!document.getElementById(optionalID))?
false:(document.getElementById(optionalID)[property])
};
if(!document.styleSheets.length){ return false ;}
cssIndex=(cssIndex && !isNaN(parseFloat(cssIndex)))? parseFloat(cssIndex):0;
ruleIndex=(ruleIndex && !isNaN(parseFloat(ruleIndex)))?
parseFloat(ruleIndex):0;
if(cssIndex>document.styleSheets.length-1){ return false; };
var RULES=( typeof(document.styleSheets[0].rules)!="undefined" )?
"rules":"cssRules";
if(ruleIndex>document.styleSheets[cssIndex][RULES].length-1){ return
false; };
return document.styleSheets[cssIndex][RULES][ruleIndex].style[property];
/* keep this comment to reuse freely:
http://www.unitedscripters.com */}

function writeClass(cssIndex, ruleIndex, property, value, optionalID,
onlyID){
if(!document.getElementById){ return false; };
if(optionalID){
if(onlyID){
return (!document.getElementById(optionalID))?
false:(document.getElementById(optionalID)=value)
}
else{
if(typeof(optionalID)=="string" &&
!document.getElementById(optionalID)){ return false; };

if(typeof(optionalID)=="string"){document.getEleme ntById(optionalID)[propert
y]=value}
else{/*an array of IDs!*/
for(var id=0; id<optionalID.length; id++){
if(!document.getElementById(optionalID[id])){continue};
document.getElementById(optionalID[id]).style[property]=value;
};
};
};
};/*out of if optionalID*/
if(!document.styleSheets.length){ return false ;}
cssIndex=(cssIndex && !isNaN(parseFloat(cssIndex)))? parseFloat(cssIndex):0;
ruleIndex=(ruleIndex && !isNaN(parseFloat(ruleIndex)))?
parseFloat(ruleIndex):0;
if(cssIndex>document.styleSheets.length-1){ return false; };
var RULES=( typeof(document.styleSheets[0].rules)!="undefined" )?
"rules":"cssRules";
if(ruleIndex>document.styleSheets[cssIndex][RULES].length-1){ return
false; };
return
document.styleSheets[cssIndex][RULES][ruleIndex].style[property]=value;
/* keep this comment to reuse freely:
http://www.unitedscripters.com */}


"Thomas 'PointedEars' Lahn" <Po*********@nurfuerspam.de> ha scritto nel
messaggio news:40**************@PointedEars.de...
Alberto wrote:
A lot of css manipulation functions (that manipulate also whole classes or single rules within them) is at
http://www.unitedscripters.com/scripts/css1.html


This is just yet another junk produced by script kiddies. eval()
everywhere, unchecked DOM mixes everywhere, spaghetticode everywhere.
I strongly recommend *against* it.
[Top post]


Please do not do that, see the FAQ.
PointedEars

Jul 23 '05 #5
Alberto wrote:
Where have you found eval() calls in those codes?
"Cannot find string "eval("

As for the junk, that website is ranked among the top 20 about javascript.

And again:
"Cannot find string "eval("
in the whole document.
The whole document you posted the URL of does not contain any script
example. But when you click the intro image and click the "TO JAVASCRIPTS"
button, you see a bunch of junk (actually, you see it long before -- or is
this supposed to be a promotion site for oculists and opticians?), for
example "Drag a Layer (2) on all browsers with dhtml".

And that's the polite way of saying it.
Also, please, identify what you mean by spaghetti codes; since it is
"everywhere" accordingly to you, point it out in these functions:

[...]
Yes, that's spaghetti code at its best.
[Top post]


Please do not do that, see the FAQ. I'll bet someone told you this before.
PointedEars, Score adjusted
Jul 23 '05 #6
Really, I'd like a lot if you could point, besides your ears, where you have
seen eval in that document. One of your arguments is that it is "everywhere"
(you specify everywhere 3 times).Yet:
"Cannot find string "eval("

You can proceed as follows: you go to:
http://www.unitedscripters.com/scripts/css1.html
Once on the page, right click with your mouse wherever in the document where
you won't see an image. You will see a drop down menu coming down nearby
your mouse pointer (that arrow moving on the screen you know...), YET don't
panic: from there you can choose the voice "HTML" or "view Source".

Once the source is viewed (it may open a new application window, yet don't
panic!) , please go on the menu, you'd find a voice like "find" under menu
modify or so: a prompt will pop up (don't panic, that's normal).

Please insert in that prompt the following string:
eval(
then please click: find.
You will be surprised to see the following answer:
"cannot find string 'eval('"

I'd really like now, since you nearly never show up for a constructive
answer but only to complain with whoever (even when they ask questions you
refer to the faqs), that you show up to uphold your position, namely that
you found "eval everywhere, (...)".

Please explain to us how comes you found "eval everywhere" when the answer
to a search on the html source is
"Cannot find string 'eval('"

Please note that page loads NO external js file. External js files are files
whose codes are in an external file and not within the body of the document,
you know...

Please let us know why you found eval everywhere.

Additionally, you can if you want search for just "eval" without the
starting bracket, and you will find ONE instance in the whole document:
"prevalence of the last style sheet"
you see pr-eval-ence. the word prevalence is not javascript codes, as
perhaps your js manual explains to you.

Also please note that the codes are not commented because the whole document
of 100Kb is itself made up of comments about how to use the functions.
Also, those codes are for free: nobody has to pay to use them.
They are power codes: you can do more than one a thing with one function.
The arguments are documented in the file. Some guys just write more than 2
lines saying they found "eval everywhere" you know.
Also, feel free to provide us with the web url to your website where we can
find better codes to do all those SAME things you can do with my codes.
Thank you.

Please do NOT forget to let us know where you have found "eval everywhere".
Alternatively, if you have nothing to say or to contribute, don't miss an
occasion to say nothing: we might end up suspecting you know what you sepak
about if from time to time you avoid mentioning things which are not in the
documents you contest.
Thank you a lot for your meaningful and completely wrong (as proved by the
facts) comments:

"cannot find string eval("
and yet you say:
"eval everywhere".

This is called a fact. I assume you know what's the difference between a
fact and an allegation.
If I have time maybe I will read your answer, provided I have more time to
waste with a person who says that he finds "eval everywhere" whereas it is
not egven present once in the whole document codes.

Bye have fun- and keep the ears pointed: maybe one day you may end up
guessing what are those noises in the other room


"Thomas 'PointedEars' Lahn" <Po*********@nurfuerspam.de> ha scritto nel
messaggio news:40**************@PointedEars.de...
Alberto wrote:
A lot of css manipulation functions (that manipulate also whole classes or single rules within them) is at
http://www.unitedscripters.com/scripts/css1.html


This is just yet another junk produced by script kiddies. eval()
everywhere, unchecked DOM mixes everywhere, spaghetticode everywhere.
I strongly recommend *against* it.
[Top post]


Please do not do that, see the FAQ.
PointedEars

Jul 23 '05 #7
Alberto wrote:
Where have you found eval() calls in those codes?
"Cannot find string "eval("
You have not searched thoroughly enough.
As for the junk, that website is ranked among the top 20 about javascript.
Ranked by whom? Other incompetent script-kiddies, I'll bet.
And again:
"Cannot find string "eval("
in the whole document.
The whole document you posted the URL of does not contain any script
example. But when you click the intro image and click the "TO JAVASCRIPTS"
button, you see a bunch of junk (actually, you see it long before -- or
is this supposed to be a promotion site for oculists and opticians?), for
example "Drag a Layer (2) on all browsers with dhtml".

And that's the polite way of saying it.
Also, please, identify what you mean by spaghetti codes; since it is
"everywhere" accordingly to you, point it out in these functions:

[...]
Yes, that's spaghetti code at its best.
[Top post]


Please do not do that, see the FAQ. I'll bet someone told you this before.
PointedEars, Score adjusted
Jul 23 '05 #8
You have not searched thoroughly enough.
Please proviude the string in that document where you have found eval then.
We are referring to:
http://www.unitedscripters.com/scripts/css1.html

Ranked by whom? Other incompetent script-kiddies, I'll bet.
No darling: have you ever heard of google and the alike? Please darling go
and see:
http://directory.google.com/Top/Comp...es/JavaScript/
But that is just an example. Do the same search on Lycos, Altavista, Excite
javascript top 20 directories if you want.
Not that I feel any special proud about that, but honestly that somebody
must show up with false allegations is a TREND that on these groups we can't
stand anymore.

I am honestly fed up with rude persons on groups that know NOTHING about
what they are speaking about and GRATUITOUSLY attack guys who lend help to
other guys.

Are you sure you know what you're speaking about? In less than 2 minutes you
have been able to miss every target.

The whole document you posted the URL of does not contain any script
example.
You're referring to:
http://www.unitedscripters.com/scripts/css1.html
yes? because there are 10 scripts there.
But when you click the intro image and click the "TO >JAVASCRIPTS"
what "intro image"? Do you have hallucintations? There is no intro, no flash
there. There is JUST a LINK that says "To javascripts" which is the list of
the files devoted to javascript on the whole website.

example "Drag a Layer (2) on all browsers with dhtml".


Can you tell the difference between an index that lists the available
documents and an individual file? can you tell the difference between the
TEXTUAL description of a link (unavoidable a short one) and the URL pointed
by a link?

Jul 23 '05 #9
The whole document you posted the URL of does not >contain any script


Here is the source code, the FIRST hundred lines, with the codes, which of
course are then displayed on the page in textareas (you know darling, that
funny procedure whereas you populate a textarea with a call to
toString()...): DO FIND EVAL NOW and do DEMONSTRATE there are no
javascripts, please. Now you go till the end of your GRATUITOUS and FALSE
allegations darling...

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>JS: css: The style sheets bonanza (Javascript)</title>
<link rel="stylesheet" type="text/css" href="../orange.css">
<link rel="stylesheet" type="text/css" href="../red.css">

<script language="JavaScript" src="../miscella.js">
</script>
<script><!--
function findSheet(characteristic, characteristicIsHREF){
if(!document.getElementById || !document.styleSheets.length){ return
false; };
if(typeof(characteristic)=="undefined"){ return false; };
this.characteristicIsHREF = (characteristicIsHREF)?1:0;
switch( typeof(characteristic) ){
case "number":
if( (characteristic>document.styleSheets.length-1)
|| typeof(document.styleSheets[characteristic])=="undefined" ){
return false; };
var href=document.styleSheets[characteristic].href;
return new Array(
document.styleSheets[characteristic],
characteristic,
href.substring( href.lastIndexOf("/")+1 ),
href
);
break;
case "object":
var i=0;
var objectToReturn;
outer:
for( ; i<document.styleSheets.length; i++){
if(document.styleSheets[i]==characteristic){
objectToReturn=document.styleSheets[i];
break;
};
if(document.styleSheets[i].imports){
for(var ii=0; ii<document.styleSheets[i].imports.length; ii++){
if(document.styleSheets[i].imports[ii]==characteristic){
objectToReturn=document.styleSheets[i].imports[ii];
break outer;
};
};
};
};
return (typeof(objectToReturn)=="undefined")?
false:new Array(
objectToReturn,
i,
objectToReturn.href.substring( objectToReturn.href.lastIndexOf("/")+1 ),
objectToReturn.href
);
break;
case "string":
this.stripHref=function(arg1, arg2){
if(!this.characteristicIsHREF){
arg1=arg1.substring( arg1.lastIndexOf("/"+1) );
var reg=new RegExp();
reg.compile("\\b"+arg2+"\\b","g");
return reg.test(arg1);
}
else{
return(arg1==arg2)?true:false;
}
return false;};
var i=0;
var objectToReturn;
outer:
for( ; i<document.styleSheets.length; i++){
if( this.stripHref( document.styleSheets[i].href, characteristic ) ){
objectToReturn=document.styleSheets[i];
break;
};
if(document.styleSheets[i].imports){
for(var ii=0; ii<document.styleSheets[i].imports.length; ii++){
if( this.stripHref( document.styleSheets[i].imports[ii].href,
characteristic ) ){
objectToReturn=document.styleSheets[i].imports[ii];
break outer;
};
};
};
};
return (typeof(objectToReturn)=="undefined")?
false:new Array(
objectToReturn,
i,
objectToReturn.href.substring( objectToReturn.href.lastIndexOf("/")+1 ),
objectToReturn.href
);
break;
};
return false;
/* keep this comment to reuse freely:
http://www.unitedscripters.com */};

function addClass(sheetIndex, definition, optionalIndex){
if(!document.getElementById || !document.styleSheets.length){ return
false; };
sheetIndex=(sheetIndex && !isNaN(parseFloat(sheetIndex)))?
parseFloat(sheetIndex):0;
if(sheetIndex>document.styleSheets.length-1){ return false; };
if(!definition || definition.indexOf("{")==-1 ||
definition.indexOf("}")==-1 ){ return false; };
var obj=document.styleSheets[sheetIndex];
optionalIndex=(!optionalIndex)?1:
(obj.rules)?
obj.rules.length : obj.cssRules.length;
if(obj.addRule){
definition=definition.split("{");
obj.addRule(definition[0], definition[1], optionalIndex);
}
else if(obj.insertRule){
obj.insertRule(definition, optionalIndex);
};
return true;
/* keep this comment to reuse freely:
http://www.unitedscripters.com */};
function deleteClass(sheetIndex, whichIndex){
if(!document.getElementById ||
!document.styleSheets.length ||
typeof(whichIndex)=="undefined" ){ return false; };
sheetIndex=(sheetIndex && !isNaN(parseFloat(sheetIndex)))?
parseFloat(sheetIndex):0;
if(sheetIndex>document.styleSheets.length-1){ return false; };
var obj=document.styleSheets[sheetIndex];
whichIndex=(!isNaN(parseFloat(whichIndex)))? parseFloat(whichIndex):0;
var RULES=(obj.rules)?"rules":"cssRules";
if(whichIndex>obj[RULES].length-1){ return false; };
if(obj.removeRule){
obj.removeRule( whichIndex );
}
else if(obj.deleteRule){
obj.deleteRule( whichIndex );
};
return true;
/* keep this comment to reuse freely:
http://www.unitedscripters.com */}
function switchSheet(indexOrObject, off){
if(!document.getElementById || !document.styleSheets.length){ return
false; };
off=(!off)?true:false;
var obj;
if(typeof(parseFloat(indexOrObject))=="number"){
indexOrObject=parseFloat(indexOrObject);
if(indexOrObject>document.styleSheets.length-1){ return false; };
obj=document.styleSheets[indexOrObject];
}else{
obj=indexOrObject;
};
obj.disabled=(off)?false:true;
return true;
};
function allClasses(indexOrObject){
if(!document.getElementById || !document.styleSheets.length){ return
false; };
indexOrObject=(indexOrObject && !isNaN(parseFloat(indexOrObject)))?
parseFloat(indexOrObject):
(typeof(indexOrObject)=="object")?indexOrObject:0;
var isObj=(typeof(indexOrObject)=="object")?1:0;
if(!isObj && typeof(document.styleSheets[indexOrObject])=="undefined"){
return false; };
var output=new Array(0);
var RULES=( typeof(document.styleSheets[0].rules)!="undefined" )?
"rules":"cssRules";
var object=(!isObj)?
document.styleSheets[indexOrObject]:indexOrObject;
for(var i=0; i<object[RULES].length; i++){
var OL=++output.length-1;
output[OL]=
new Array(
object[RULES][i],
object[RULES][i].selectorText,
new Array(0), new Array(0), new Object(), i, indexOrObject
);
for(var grab in object[RULES][i].style){
var current=object[RULES][i].style[grab];
if(current!="" && typeof(current)!="function"){
output[OL][2][ ++output[OL][2].length-1 ]=grab;
output[OL][3][ ++output[OL][3].length-1 ]=current;
output[OL][4]=object[RULES][i].style;
};
};
};
return output;/* keep this comment to reuse freely:
http://www.unitedscripters.com */};


function oneClass(object, cssIndex, setProperty, withThisValue,
objIsSelector){
if(!document.getElementById || !document.styleSheets.length){ return
false; };
var type=typeof(object);
object=(!isNaN(parseFloat(object)))? parseFloat(object):object;
if( type=="object" ||
(type=="number" && typeof(cssIndex)!="undefined") ){
cssIndex=(!isNaN(parseFloat(cssIndex)))? parseFloat(cssIndex):0;
if(type!="object" && cssIndex>document.styleSheets.length-1){ return
false; };
var trueObject=(type=="object")?
object:document.styleSheets[cssIndex];
var RULES=(trueObject.rules)?"rules":"cssRules";
if(type=="number" && object>trueObject[RULES].length-1){ return
false; };
trueObject=(type=="object")?
trueObject:trueObject[RULES][object];
if(setProperty){
trueObject.style[setProperty]=withThisValue;
return true;
};
var output=new Array(1);
output[0]=new Array(
trueObject,
trueObject.selectorText,
new Array(0), new Array(0), new Object(), object
);
var OL=output.length-1;
for(var grab in trueObject.style){
var current=trueObject.style[grab];
if(current!="" && typeof(current)!="function"){
output[OL][2][ ++output[OL][2].length-1 ]=grab;
output[OL][3][ ++output[OL][3].length-1 ]=current;
output[OL][4]=trueObject.style;
};
};
return output;
}
else if(type=="number" && typeof(cssIndex)=="undefined"){
var output=new Array(0);
var RULES=(document.styleSheets[0].rules)?"rules":"cssRules";
for(var i=document.styleSheets.length-1; i>=0; i--){
var trueObject=document.styleSheets[i][RULES];
if(object>trueObject.length-1){ ;continue; };
var OL=++output.length-1;
output[OL]=new Array(
trueObject[object],
trueObject[object].selectorText,
new Array(0), new Array(0), new Object(), object, i
);
for(var grab in trueObject[object].style){
var current=trueObject[object].style[grab];
if(current!="" && typeof(current)!="function"){
output[OL][2][ ++output[OL][2].length-1 ]=grab;
output[OL][3][ ++output[OL][3].length-1 ]=current;
output[OL][4]=trueObject.style;
};
};
};
return output;
}
else if(type=="string"){
var output=new Array(0);
this.compare=function(arg1, arg2){
if(objIsSelector){
return (arg1==arg2)?true:false;
}
else{
arg2=arg2.replace(/\./gi,"");
var expr=new RegExp("\\b"+arg2+"\\b");
return expr.test(arg1);
};
};
if(setProperty){
cssIndex=(!isNaN(parseFloat(cssIndex)))? parseFloat(cssIndex):0;
if(cssIndex>document.styleSheets.length-1){ return false; };
var RULES=(document.styleSheets[0].rules)?"rules":"cssRules";
for(var i=0; i<document.styleSheets[cssIndex][RULES].length; i++){
var current=document.styleSheets[cssIndex][RULES][i];
if( this.compare(object, current.selectorText) ){
current.style[setProperty]=withThisValue;
return true;
};
};
}
else{
if(typeof(cssIndex)=="undefined" ||
(typeof(cssIndex)!="number" && objIsSelector)
){
var RULES=(document.styleSheets[0].rules)?"rules":"cssRules";
for(var i=document.styleSheets.length-1; i>=0; i--){
for(var ii=0; ii<document.styleSheets[i][RULES].length; ii++ ){
var current=document.styleSheets[i][RULES][ii];
if( this.compare(object, current.selectorText) ){
var OL=++output.length-1;
output[OL]=new Array(
current,
current.selectorText,
new Array(0), new Array(0), new Object(), ii, i
);
for(var grab in current.style){
var current2=current.style[grab];
if(current2!="" && typeof(current2)!="function"){
output[OL][2][ ++output[OL][2].length-1 ]=grab;
output[OL][3][ ++output[OL][3].length-1 ]=current2;
output[OL][4]=current.style;
};
};
};
};
};
}
else{
cssIndex=(!isNaN(parseFloat(cssIndex)))? parseFloat(cssIndex):0;
if(cssIndex>document.styleSheets.length-1){ return false; };
var RULES=(document.styleSheets[0].rules)?"rules":"cssRules";
for(var i=0; i<document.styleSheets[cssIndex][RULES].length; i++){
var current=document.styleSheets[cssIndex][RULES][i];
if( this.compare(object, current.selectorText) ){
var OL=++output.length-1;
output[OL]=new Array(
current,
current.selectorText,
new Array(0), new Array(0), new Object(), i, cssIndex
);
for(var grab in current.style){
var current2=current.style[grab];
if(current2!="" && typeof(current2)!="function"){
output[OL][2][ ++output[OL][2].length-1 ]=grab;
output[OL][3][ ++output[OL][3].length-1 ]=current2;
output[OL][4]=current.style;
};
};
};
};
};
};
return output;
};
return false;/* keep this comment to reuse freely:
http://www.unitedscripters.com */}
function findClass(wantedClass, beyondMatch){
/*REQUIRES the allClasses function in the same document*/
if(!wantedClass || !document.styleSheets){return false;};
if(!window["allClasses"]){ return false; };
var tempClasses=new Array(0);
this.compare=function(arg1, arg2){
if(arg1==arg2){return true}
else{
arg2=arg2.replace(/\./gi,"");
var expr=new RegExp("\\b"+arg2+"\\b");
return expr.test(arg1);
};
}
var output=new Array(0);
outer:
for(var s=document.styleSheets.length-1; s>=0; s--){
tempClasses=allClasses(s);
for(var t=0; t<tempClasses.length;t++){
if(this.compare(tempClasses[t][1], wantedClass)){
var OL=++output.length-1;
output[OL]=new Array(0,0,0,0)
output[OL][0]=s;
output[OL][1]=t;
output[OL][2]=document.styleSheets[s];
output[OL][3]=tempClasses[t];
if(!beyondMatch){ return output; }
};
};
};
return output;/* keep this comment to reuse freely:
http://www.unitedscripters.com */}

function readClass(cssIndex, ruleIndex, property, optionalID){
if(!document.getElementById){ return false; };
if(optionalID){
return (!document.getElementById(optionalID))?
false:(document.getElementById(optionalID)[property])
};
if(!document.styleSheets.length){ return false ;}
cssIndex=(cssIndex && !isNaN(parseFloat(cssIndex)))? parseFloat(cssIndex):0;
ruleIndex=(ruleIndex && !isNaN(parseFloat(ruleIndex)))?
parseFloat(ruleIndex):0;
if(cssIndex>document.styleSheets.length-1){ return false; };
var RULES=( typeof(document.styleSheets[0].rules)!="undefined" )?
"rules":"cssRules";
if(ruleIndex>document.styleSheets[cssIndex][RULES].length-1){ return
false; };
return document.styleSheets[cssIndex][RULES][ruleIndex].style[property];
/* keep this comment to reuse freely:
http://www.unitedscripters.com */}


function writeClass(cssIndex, ruleIndex, property, value, optionalID,
onlyID){
if(!document.getElementById){ return false; };
if(optionalID){
if(onlyID){
return (!document.getElementById(optionalID))?
false:(document.getElementById(optionalID)=value)
}
else{
if(typeof(optionalID)=="string" &&
!document.getElementById(optionalID)){ return false; };

if(typeof(optionalID)=="string"){document.getEleme ntById(optionalID)[propert
y]=value}
else{/*an array of IDs!*/
for(var id=0; id<optionalID.length; id++){
if(!document.getElementById(optionalID[id])){continue};
document.getElementById(optionalID[id]).style[property]=value;
};
};
};
};/*out of if optionalID*/
if(!document.styleSheets.length){ return false ;}
cssIndex=(cssIndex && !isNaN(parseFloat(cssIndex)))? parseFloat(cssIndex):0;
ruleIndex=(ruleIndex && !isNaN(parseFloat(ruleIndex)))?
parseFloat(ruleIndex):0;
if(cssIndex>document.styleSheets.length-1){ return false; };
var RULES=( typeof(document.styleSheets[0].rules)!="undefined" )?
"rules":"cssRules";
if(ruleIndex>document.styleSheets[cssIndex][RULES].length-1){ return
false; };
return
document.styleSheets[cssIndex][RULES][ruleIndex].style[property]=value;
/* keep this comment to reuse freely:
http://www.unitedscripters.com */}

//--></script>
<style>
..thisCell{background-color:#cc0000;}
</style>
</head>

<body bgcolor="#ff0000" onLoad="" link="#ff9999" alink="#ff0000"
vlink="#ff9999">

<form name="main">
<script language="JavaScript">
<!--
var df=document.forms[0];
var nm=new Image(200,410)
nm.src="moric4.jpg";

function addcomm(arg, a2){
arg=arg.toString();
if(a2){return arg};
if(arg.indexOf("unitedscripters")==-1){
arg=arg.substring(0,arg.lastIndexOf("}"));
arg+="}";
}
return arg;
}

(... ... ...)

The function returns an <strong>Array</strong> of <strong>5 entries</strong>
holding the following data on the style sheet (or it returns
<strong>false</strong> if no styleSheet corresponding to the passed criteria
has been located in the current document):
<ol start="0">
<li><strong>entry [0]</strong>: the style sheet Object (a scripting
reference to it, that is)</li>
<li><strong>entry [1]</strong>: the style sheet <strong>numerical
index</strong></li>
<li><strong>entry [2]</strong>: the style sheet file <strong>name</strong>
stripped of the location path.<br>
If there was no external file, but say a STYLE tag, this property would
carry an empty string.
</li>
<li><strong>entry [4]</strong>: the style sheet location path (very good in
case you knew only the file name but not the path!)<br>
If there was no external file, but say a STYLE tag, this property would
carry an empty string.</li>
</ol>
(... ... ...)

<script><!--
function test1(){
if(!document.styleSheets){alert("Your browser does not recognizes the
syntax styleSheets.\nPlease consider upgrading to Netscape 6 and above or to
Mozilla or to Internet Explorer 5 and above.\n\nFunction aborted.");return
false;}
if(/^\s+$/.test(df.t1t1.value) || df.t1t1.value==""){
alert("No valid data input. Please provide data. Function aborted.");
return false;
}
var hr=(df.t1c1.checked)?1:0;
var arg1=(!isNaN(parseFloat(df.t1t1.value)))?
parseFloat(df.t1t1.value):df.t1t1.value;
df.t1s1.value="findSheet("+ (
(typeof(arg1)=="number")?arg1:("'"+arg1+"'") )+", "+hr+")";
var out=findSheet( arg1, hr )
df.t1x1.value=(out)?out.join("\n"):out;
}//--></script>
(... ... ...)

textarea name="f3" cols="60" rows="15" class="buttons2" wrap="hard"
style="text-align:right;font-weight:normal;text-decoration:underline;color:#
F7C684" onFocus="this.select()"
onChange="this.value=addcomm(allClasses)"></textarea>
<script><!--
df.f3.value=addcomm(allClasses);
//--></script>

SEE ABOVE! Surpries! A textarea df.f3.value= populated with a script code
from a function named allClasses!
And yet you say you saw no codes...
mmmmmhhhhh... smart guy!
Jul 23 '05 #10
So "pointed ears", you have not found the string eval() in the document
eh... Still waiting pointed ears...: you said it was "everywhere", but now
that I ask you to quote where it is on
http://www.unitedscripters.com/scripts/css1.html
you say nothing eh, you can't quote it eh after you have insulted me for two
days eh... No wonder, there was NO eval... that is how you are pointed
ears... you qualify yourself darling.
How comes you arrived declaring that you saw "eval everywhere"?

You said ALSO there were no scripts, the source code provided a lot of
scripts, yet you are not even able to show up for a polite apology eh. I bet
you're not even able to right click a document and see a source code eh...

"incompetent", "junk", "script kiddies"... like that, you eneterd with those
words, simply, as if it were NORMAL...

What made you think that you can enter a thread JUST to insult somebody,
sweetheart? I'd like to know where you derived this self delusion
accordingly to which you can enter a thread and call other guys names, like
that, cheerfully without any hesitation... you do that just like that,
simply, as if it were normal, as if you find it legitimate to insult a
person WITHOUT any reason.

So, not only gratuitous rebuttals, but even on complete false allegations:
"eval everywhere", "ranked by ohter incompetents like you"... well still
waiting for you to explain to us where you found eval in the mentioned
document
http://www.unitedscripters.com/scripts/css1.html
can't your PROVE your point after which you have SO WANTONLY vilified my
suggestion to a third user?

you are able to meddle with a guy who is helping ANOTHER guy, entering the
thread in a complete gratuitous unwarranted way, WITHOUT giving ANY positive
contribution, and only in order to DISRUPT, INSULT, ATTACK.
And then you even GO ON isulting.
I think we yhave enough of this kind of behaviour on newsgroups.

you think you can enter and call GRATUITOUSLY other guys "script-kiddies"
and worthless and calling them "incompetent" and when it comes out that the
only incompetent is you you're not even able to issue an apology for your
gratuitous insults eh...

So please quote all the instances where you found eval, after all it "was
everywhere"...

I "apologize" (though I see pointed ears doesn't... mmmmhhhh, interesting)
with the other members of the group, but I think that at times these
gratuitous rebuttals should go punished. We are ALL here trying to help out
for FREE, and yet we're still subject not only to insults (they couldn't be
condoned even if true) but even to insults based on hallucinations and FALSE
statements. That is how incredible it is.

When I join a thread I NEVER, NEVER make rebuttals on any body else: I make
my point, and if the user finds my contribution useful, that's all. I don't
even make rebuttals when I see somebody posts a wrong reply. I just mind my
OWN business, and my OWN business alone, and yet we must still see on these
groups guys, completely detrimental to the purpose of the group itself, who
deliver terms like "incompetent", "script kiddies" "eval everywhere" "ranked
by another incompetent like you" "junk website" and so on, and when faced
with the challenge to provide evidence, they can't even issue a mild apology
at least...

Goodbye pointed ears, keep the ears pointed, you don't have much more to
point out except insults for FREE.
"Alberto" <NO****@hotmail.com> ha scritto nel messaggio
news:c8**********@lacerta.tiscalinet.it...
You have not searched thoroughly enough.
Please proviude the string in that document where you have found eval

then. We are referring to:
http://www.unitedscripters.com/scripts/css1.html

Ranked by whom? Other incompetent script-kiddies, I'll bet.
No darling: have you ever heard of google and the alike? Please darling go
and see:

http://directory.google.com/Top/Comp...es/JavaScript/ But that is just an example. Do the same search on Lycos, Altavista, Excite javascript top 20 directories if you want.
Not that I feel any special proud about that, but honestly that somebody
must show up with false allegations is a TREND that on these groups we can't stand anymore.

I am honestly fed up with rude persons on groups that know NOTHING about
what they are speaking about and GRATUITOUSLY attack guys who lend help to
other guys.

Are you sure you know what you're speaking about? In less than 2 minutes you have been able to miss every target.

The whole document you posted the URL of does not contain any script
example.
You're referring to:
http://www.unitedscripters.com/scripts/css1.html
yes? because there are 10 scripts there.
But when you click the intro image and click the "TO >JAVASCRIPTS"


what "intro image"? Do you have hallucintations? There is no intro, no

flash there. There is JUST a LINK that says "To javascripts" which is the list of the files devoted to javascript on the whole website.

example "Drag a Layer (2) on all browsers with dhtml".
Can you tell the difference between an index that lists the available
documents and an individual file? can you tell the difference between the
TEXTUAL description of a link (unavoidable a short one) and the URL

pointed by a link?

Jul 23 '05 #11
Alberto wrote:
<script language="JavaScript" src="../miscella.js">
<script type="text/javascript" src="..."></script>
</script>
<script><!--
<!-- not needed and not recommended.
function findSheet(characteristic, characteristicIsHREF){
if(!document.getElementById || !document.styleSheets.length){ return
false; };
Code blocks do not require trailing semi-colons. This mistake is repeated
throughout the code.
if(typeof(characteristic)=="undefined"){ return false; };
typeof is an operator, not a function. This can be made much more clear by
elminating the brackets from the operand: "typeof characteristic". This mistake
it repeated throughout the code.
this.characteristicIsHREF = (characteristicIsHREF)?1:0;
Why use 1 and 0 when you test characteristicIsHREF as a boolean later? Why not:

this.characteristicIsHREF = (characteristicIsHREF ? true : false);

or even

this.characteristicIsHREF = !!characteristicIsHREF;
var reg=new RegExp();
reg.compile("\\b"+arg2+"\\b","g");
return reg.test(arg1);
You don't need to construct a new RegExp() object, then compile it, then test
it, you can do it all in a single operation:

return (new RegExp("\\b"+arg2+"\\b","g")).test(arg1);
}
else{
return(arg1==arg2)?true:false;
You're using a conditional to return the boolean result of an expression that
returns a boolean:

return (arg1 == arg2);
return (typeof(objectToReturn)=="undefined")?
false:new Array(
objectToReturn,
i,
objectToReturn.href.substring( objectToReturn.href.lastIndexOf("/")+1 ),
objectToReturn.href
);
What an ugly incomprehensible conditional. If you're going to include unneeded
semi-colons at the end of code blocks, and use unneeded brackets on the typeof
operator, why not use a few more characters to make it clear what you're doing?

if (typeof objectToReturn == "undefined") {
return false;
} else {
return [
objectToReturn,
i,
objectToReturn.href.substring(objectToReturn.href. lastIndexOf("/") + 1),

objectToReturn.href
];
}
optionalIndex=(!optionalIndex)?1:
(obj.rules)?
obj.rules.length : obj.cssRules.length;
Nested conditionals? Lovely. Could you write code that is more difficult to
maintain?

if (!optionalIndex) {
optionalIndex = 1;
} else {
optionalIndex = (obj.rules ? obj.rules.length : obj.cssRules.length);
}
off=(!off)?true:false;
Excuse me?

off = !off;
obj.disabled=(off)?false:true;
obj.disabled = !off;

I didn't look at the code too closely, but it appears you reverse the boolean
state of off, then simply reverse it's state again before assigning it to
obj.disabled.
indexOrObject=(indexOrObject && !isNaN(parseFloat(indexOrObject)))?
parseFloat(indexOrObject):
(typeof(indexOrObject)=="object")?indexOrObject:0;
Wonderful, more incomprehensible nested conditionals. Not only are they hard to
read, you're doing way more method calls and tests then are required:

var indexOrObjectFloat = parseFloat(indexOrObject);
var indexOrObjectIsObject = (typeof indexOrObject == "object");

if (!isNaN(indexOrObjectFloat)) {
indexOrObject = indexOrObjectFloat;
} else if (!indexOrObjectIsObject) {
indexOrObject = 0;
}
var isObj=(typeof(indexOrObject)=="object")?1:0;
Again, assigning 1 or 0 based on an expression that returns a boolean to what is
essentially a boolean flag.

var isObj = (typeof indexOrObject == 'object');

Of course, I already did this above because it was needed earlier, so I do the
typeof test once, instead of twice.
output[OL][2][ ++output[OL][2].length-1 ]=grab;
output[OL][3][ ++output[OL][3].length-1 ]=current;
Oh my god.

Isn't ++value - 1 == value?

so:

output[OL][2][ ++output[OL][2].length-1 ]=grab;
output[OL][3][ ++output[OL][3].length-1 ]=current;

is exactly the same as:

output[OL][2][output[OL][2].length]=grab;
output[OL][3][output[OL][3].length]=current;

which is also the same as:

output[OL][2].push(grab);
output[OL][3].push(current);
object=(!isNaN(parseFloat(object)))? parseFloat(object):object;
You're calling parseFloat() twice if object ends up being a number, and you're
doing an unnecessary assignment if it's not.

var tempObject = parseFloat(object);
if (!isNaN(tempObject)) {
object = tempObject;
}

I could go on, but I can't be bothered telling you how to fix your horrible code
any longer.
SEE ABOVE! Surpries! A textarea df.f3.value= populated with a script code
from a function named allClasses!
And yet you say you saw no codes...
mmmmmhhhhh... smart guy!


Why are there 100 lines of inline Javascript on that page? You enjoy forcing
your users to download that much Javascript everytime they visit the page it's
on?

--
| Grant Wagner <gw*****@agricoreunited.com>

* Client-side Javascript and Netscape 4 DOM Reference available at:
*
http://devedge.netscape.com/library/...ce/frames.html

* Internet Explorer DOM Reference available at:
*
http://msdn.microsoft.com/workshop/a...ence_entry.asp

* Netscape 6/7 DOM Reference available at:
* http://www.mozilla.org/docs/dom/domref/
* Tips for upgrading JavaScript for Netscape 7 / Mozilla
* http://www.mozilla.org/docs/web-deve...upgrade_2.html
Jul 23 '05 #12

An OUTSTANDING example of a rebuttal. Worth a glance. Rather long,
OBVIOUSLY feel fee to dismiss it entirely if not interested.

But this habit of the rebuttals must go to a stop (forgive od
english,
which is NOT my native tongue), if you consider what TYPE of rebuttal
we
often see here.

I am truly still impressed that persons here STILL make rebuttals an
don't
know the simplest courtesy guidelines.

My own: an user asks for a question, I get in if I can, answer HIS/HER
question with MY personal suggestion, and I do NEVER meddle with th
others
who are kind enough to respond to him/her.
If I see an answer with a wrong code, I don't jump on that, I JUS
state MY
OWN answer and I don't even metnion the answers of the others I found
uncorrect or questionable. I STICK to this rule. N_O R_E_B_U_T_T_A_L_
Jul 23 '05 #13
Alberto wrote:
[scriptkiddie whining]


Unlike your forum4designers.com gateway junk may appear, this is not a
support forum/bulletin board but a Usenet discussion group. You have
written (or even only copypasted) junk code and Grant has proved it.
So learn from that or FOAD. Thanks.
PointedEars
--
Bug juice all over the net!
Jul 23 '05 #14
Ah pointed ears, the guy who always attacks wheoever posts a question and
who never joins a thread but makes sure the thread that carries his
signature gets listed in a brand new forum node so to appear as first. Maybe
one day you will fix your news reader LOL

I must say I am one of your admirers. It is rare to find a person like you
that when beginners here ask questions jumps in and start bashing them
because they don't know things.

If you wouldn't be funny you might be tragic, but luckily enough you're
funny. You're actually the one who said that in those codes there were
eval() statements and there was not even one.
You can review what you wrote in its entirety at:
http://www.forum4designers.com/archi...4-5-77131.html

do you know, still waiting to see where in those codes you saw "evals
everywhere", there was not even one LOL

Well not that it matters, it seems at times the forum is ravished by persons
who rather than dealing with javascript and SIGNIFICANT aspects of codes,
deal with freudian anal attitudes (focused on "ah, this comma, ah this
comment, ah this dot..."; Freud discriminates three phases before the
genital one: the one fixed on the anal side starts finding of the foremost
importance the details, and if a detail is not the expected way, all the
speech starts revolving around that)

ciao thank you for the laugh

Alberto
"Thomas 'PointedEars' Lahn" <Po*********@web.de> ha scritto nel messaggio
news:68****************@PointedEars.de...
Alberto wrote:
[scriptkiddie whining]


Unlike your forum4designers.com gateway junk may appear, this is not a
support forum/bulletin board but a Usenet discussion group. You have
written (or even only copypasted) junk code and Grant has proved it.
So learn from that or FOAD. Thanks.
PointedEars
--
Bug juice all over the net!

Jul 23 '05 #15

(.. after many posts at comp.lang.javascript, a LAST boring briefing to
you, miei amici -o costruttivi nemici lol- italiani...)
-------------------------------------------------------

ciao Richard it is a pleasure to speak with you.
Please note that I am not anonymous: I not only put my website link on
my
own comments, but I put my face too:

http://www.unitedscripters.com/list.html

scroll to the bottom Richard, and AT LEAST acknowledge me some
intellectual
honesty. I dislike being depicted like the bad guy of the pack when
all I
do is offer free codes. One doesn't like them? One doesn't get them.
Does
one like them, I don't charge a penny.

But Richard: like anyone else doing this sort of work, I want to be
respected, do you understand?

I do not contend the professionalism of the others: but I expect them
never
to attack mine, not the same as constrfuctive criticising, because I
prefer
varx=(varx)?false:true;
to
varx=!!varx

Do you get my point Richard?
It is impossible to regard as positive intellectual contributions
those
where your code is said "what an awful bunch" and where you get called
an
XXX - without reicprocating
javascript. The result may seem critical (even excessively critical, or rude) but skills evolve quickest in a hostile environment (assuming that participate in the exchange).
Well done point Richard.

Well Richard, may I ask to you a favour you don't owe me? Would you
devote 2
minutes of your time to GLANCE at this:
http://www.unitedscripters.com/writings/reviews1.html

You will see there how I speak of a clearly badly designed file: you
will
see then how I speak with praise about the good things, not trying to
bolster my alleged low self esteem viewing the code and SCRAMBLING for
a
personal preference I may finally have contended.

Pay me the respect I pay to those who don't attack me gratuitously, and
I
may end up saying even thank you.
Attack me and call me XXX because I prefer
varx=(varx)?1:0;
to
varx=!!varx

and you're (not you Richard lol) going to have troubles with me.
It is worth remembering that when someone posts to comp.lang.javascript under their own name, knowing the group to be archived, they are
effectively putting their professional reputation on the line. So the

As I said, I do so, I also put my face in my posts, fearlessly.
explanation. Beyond that the exact tone is not too >important.
well "XXX" repeated twice is not a tone LOL. But you're intelligent
enough
to agree 101% it is not my personal sensitiveness
diverse linguistic backgrounds of contributors to the group means that sometimes subtlety is lost in translation. A response may seem
aggressive or patronising for not reason but that, or it may be
intended.
True; "XXX" doesn't belong there. It is not a thing that gets lost in
translation: it is exactly the thing that gets transmitted with or
without
translations.
group. A little deflating of the ego with some critical code analysis, and pointing out of the unseen issues, is virtually a pre-requisite for gaining the skills to actually tackle the problems and issues of
cross-browser Internet scripting.
Richard, please: I sell nothing. Make a search on the internet after
my
name:
Alberto Vallini

No secrets.
if I seem to you to be a person who doesn't care, whistle. One thing
about
the ego is a super-ego, another thing is the ego of one who des NOT
accept
being called XXX and XXXXXXX and "awful code" simply on a STYLE custom
preference.

Richard, taking sides attacking me is not doing harm to me: is doing
harm to
those that, only beacues more familiar to you, are more entitled to
your
valuable respect, and counting on this they indulge in every bad word
practice possible.
Finally there is one last, and inevitable, human reason for seemingly hostile posts, and that is the mood of the individual at the time. If you have spent the day dealing with the consequences of other peoples badly authored code in a context where you couldn't express the
resulting frustration, for example, then that frustration might end up being expressed in response to the next example of poor code
encountered. But circumstances change, and moods change. People have
good days and bad days (and lots of variety in between).
Richard, listen to me: VERY TRUE.
What should have I done, said that you're saying bullshit when you're
not?
You just said a VERY true thing. My ego is not such that I must now
attack
you because you disagree: on the contrary I am ackowledging your point.
Many
don't do this. We see this here.
Grant didn't say they were a bug, he said "not needed and not
recommended", which is true. Michael has explained why they are not


Richard, when they go to speak of "XXX", they are ALREADY beyond the
courtesy boundaries you're so kind to ascribe to them here.

Let me use expressions like
++lenght-1
They work, I use them, I am expecting not to be called an XXX just
because
others would prefer an array incrementation which is less obvious in
its
formal appearance.

You make more sense than all the previousn posts bundled toghether

ciao
Alberto
http://www.unitedscripters.com/

--
Alberto

Jul 23 '05 #16

This discussion thread is closed

Replies have been disabled for this discussion.

By using this site, you agree to our Privacy Policy and Terms of Use.