Может как то так?Это заставит ваши таблицы вести себя так, как если бы один из них
var table1 = document.getElementsByTagName('table')[0].getElementsByTagName('tr');
var table2 = document.getElementsByTagName('iframe')[0].contentDocument.getElementsByTagName('tr');
var tr = merge([table1,table2]);
var padding = 2; //set your padding to make up for difference from offsetwidth vs style width
var higestWidth = new Array();
for(var i in tr){
for(var j in tr[i].childNodes){
var td = tr[i].childNodes[j];
if(typeof td == 'object'){
if(higestWidth[td.cellIndex] == null || higestWidth[td.cellIndex] < td.offsetWidth){
higestWidth[td.cellIndex] = td.offsetWidth;
}
}
}
for(var j in tr[i].childNodes){
var td = tr[i].childNodes[j];
if(typeof td == 'object'){
td.setAttribute('width', higestWidth[td.cellIndex] - padding);
}
}
}
Почти забыл, что я использую здесь некоторые свои собственные функции, вот и все.
var foreach = function(object,loop){
for (var key in object) {
if (object.hasOwnProperty(key)) {
loop(object[key],key);
}
}
}
var merge = function(objectCollections){
var array = new Array();
foreach(objectCollections,function(objectCollection){
foreach(objectCollection,function(object){
array.push(object);
});
});
return array;
}