...

View Full Version : grab style attribute



A1ien51
12-15-2004, 07:41 PM
Background: I am making a script that makes a table have a static header by just adding the script to the page and calling it with the table name.

I am using this code to apply the attributes of the orginal table to the new header table:



//Apply CSS to the static table
theOrgTable = document.getElementById(xDataGridName);
theNewTable = document.getElementById("theAddon_" + xDataGridName);
for(i=0;i<theOrgTable.attributes.length;i++){
if(theOrgTable.attributes[x].nodeValue && theOrgTable.attributes[i].nodeName.toLowerCase() != "id"){
theNewTable.setAttribute(theOrgTable.attributes[i].nodeName,theOrgTable.attributes[i].nodeValue);
}
}


Now that works all fine and dandy except for when the person (or asp.net generated code) uses the style attribute in the table tag instead of a class.

The value that the script above says for the style attribute is 'null'

I tried to loop through the css rules for the style attribute like you should for a style sheet, but that did not work. I tried to apply the style object directly to the other style and that did not work.

Anyone have any clue on how I can access the elements inside of that style attributes object?

Thanks,
Eric

Willy Duitt
12-15-2004, 08:22 PM
Have you tried getComputedStyle() ??

A1ien51
12-15-2004, 09:04 PM
I used that along with IE equiv currentStyle.

I was not able to figure out how to access the elements of it without knowing all of the items inside the style tag.

For instance I have no clue if there is a background-color, font, color, etc. in the tag since it is generated by another process I have no control over.

I really do not want to put 25+ statements to grab the possibilities.

Eric

A1ien51
12-15-2004, 09:07 PM
MISTAKE.....

A1ien51
12-15-2004, 09:41 PM
Is it possible to set one elements style equal another elements currentStyle/getComputedStyle?

Eric

A1ien51
12-15-2004, 10:14 PM
Okay I can get it to work in Mozilla and not IE. What a surprise!



function makeSame(elem_1, elem_2){

//IE (no-clue)
if (elem_1.currentStyle){
//output parameters to see if there is a style
for (prop in elem_1.currentStyle){
tStr += prop + " : " + elem_1.currentStyle[prop] + "<br>";
}
document.write(tStr);
}
//Mozilla (works)
else if (window.getComputedStyle){
elem_1x=window.getComputedStyle(elem_1, "");
elem_2x=window.getComputedStyle(elem_2, "");
elem_2x = elem_1x;
}
}


The IE code just loops through the properties in the currentStyle object. I tried to do it the same way with Mozilla but it gives an error!

Time to go home for the day!
Eric



EZ Archive Ads Plugin for vBulletin Copyright 2006 Computer Help Forum