Ticket #2389: 2389.patch
File 2389.patch, 3.1 KB (added by , 16 years ago) |
---|
-
fckdomtools.js
1 /*1 /* 2 2 * FCKeditor - The text editor for Internet - http://www.fckeditor.net 3 3 * Copyright (C) 2003-2008 Frederico Caldeira Knabben 4 4 * … … 525 525 for ( var i = 0 ; i < aAttributes.length ; i++ ) 526 526 this.RemoveAttribute( element, aAttributes[i] ); 527 527 }, 528 529 /** 530 * Copy all attributes of the element to an array. 531 * Fix is specific to ticket #2389 but could probably be used in other scenarios. 532 */ 533 CopyAttributesToArray : function ( element ) 534 { 535 var elementAttributes = [] ; 536 var j = 0 ; 528 537 538 for ( var i = 0 ; i < element.attributes.length ; i++ ) 539 { 540 // Check for "specified" attributes on the row element 541 if( element.attributes[i].specified ) 542 { 543 elementAttributes[j] = element.attributes.item(i).nodeName ; 544 elementAttributes[j + 1] = this.GetAttributeValue( element, element.attributes.item(i).nodeName ) ; 545 j = j + 2 ; 546 } 547 } 548 return elementAttributes ; 549 }, 550 551 /** 552 * Generic function used to set attribute values of DOM elements. 553 */ 554 SetAttributeValue : function( element, attributeName, attributeValue ) 555 { 556 // Workaround for IE when setting the "style" or "class" attributes. 557 if ( FCKBrowserInfo.IsIE && attributeName == 'style' ) 558 element.style.cssText = attributeValue; 559 else if ( FCKBrowserInfo.IsIE && attributeName == 'class' ) 560 element.setAttribute( 'className', attributeValue ) ; 561 else 562 element.setAttribute( attributeName, attributeValue ) ; 563 }, 564 529 565 GetAttributeValue : function( element, att ) 530 566 { 531 567 var attName = att ; -
fcktablehandler.js
1 /*1 /* 2 2 * FCKeditor - The text editor for Internet - http://www.fckeditor.net 3 3 * Copyright (C) 2003-2008 Frederico Caldeira Knabben 4 4 * … … 686 686 // for storing the calculated rowSpan in IE. 687 687 var rowSpanAttr = FCKBrowserInfo.IsIE ? "_fckrowspan" : "rowSpan" ; 688 688 689 // Get all row attributes 690 var rowAttributes = [] ; 691 var rowCount = 0 ; 692 689 693 // Clear the table of all rows first. 690 694 while ( table.rows.length > 0 ) 691 695 { 692 696 var row = table.rows[0] ; 697 698 // Get all row attributes before deleting the row 699 rowAttributes[rowCount] = FCKDomTools.CopyAttributesToArray ( row ); 700 rowCount++ ; 701 693 702 row.parentNode.removeChild( row ) ; 694 703 } 695 704 … … 765 774 for ( var i = 0 ; i < tableMap.length ; i++ ) 766 775 { 767 776 var rowObj = FCKTools.GetElementDocument( table ).createElement( 'tr' ) ; 777 778 // Set attributes previously stored in the array 779 var rowAttributePairs = [] ; 780 rowAttributePairs = rowAttributes[i].toString().split(","); 781 782 for ( var k = 0 ; k < rowAttributePairs.length ; k = k + 2 ) 783 FCKDomTools.SetAttributeValue( rowObj, rowAttributePairs[k] , rowAttributePairs[k + 1] ) ; 784 768 785 for ( var j = 0 ; j < tableMap[i].length ; ) 769 786 { 770 787 var cell = tableMap[i][j] ;