You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tapestry.apache.org by hl...@apache.org on 2010/05/12 19:09:39 UTC
svn commit: r943582 -
/tapestry/tapestry5/trunk/tapestry-core/src/main/resources/org/apache/tapestry5/tapestry.js
Author: hlship
Date: Wed May 12 17:09:39 2010
New Revision: 943582
URL: http://svn.apache.org/viewvc?rev=943582&view=rev
Log:
TAP5-1129: Don't use Element.outerHTML as it is IE only
Modified:
tapestry/tapestry5/trunk/tapestry-core/src/main/resources/org/apache/tapestry5/tapestry.js
Modified: tapestry/tapestry5/trunk/tapestry-core/src/main/resources/org/apache/tapestry5/tapestry.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/resources/org/apache/tapestry5/tapestry.js?rev=943582&r1=943581&r2=943582&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/main/resources/org/apache/tapestry5/tapestry.js (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/main/resources/org/apache/tapestry5/tapestry.js Wed May 12 17:09:39 2010
@@ -567,14 +567,22 @@ var Tapestry = {
*/
replaceElementTagName : function(element, newTagName) {
- var tag = $(element).tagName;
- var outerHTML = $(element).outerHTML;
+ element = $(element);
+
+ var tag = element.tagName;
+
+ /* outerHTML is IE only; this simulates it on any browser. */
+
+ var dummy = document.createElement('html');
+ dummy.appendChild(element.cloneNode(true));
+ var outerHTML = dummy.innerHTML;
+ dummy.innerHTML = '';
var replaceHTML = outerHTML.replace(new RegExp("^<" + tag, "i"),
"<" + newTagName).replace(new RegExp("</" + tag + ">$", "i"),
"</" + newTagName + ">");
- $(element).insert( {
+ element.insert( {
before : replaceHTML
}).remove();
}