Author: knopp Date: Thu Jan 18 16:10:50 2007 New Revision: 497647 URL: http://svn.apache.org/viewvc?view=rev&rev=497647 Log: Safari fix
Modified: incubator/wicket/branches/wicket-1.x/wicket/src/main/java/wicket/ajax/wicket-ajax.js Modified: incubator/wicket/branches/wicket-1.x/wicket/src/main/java/wicket/ajax/wicket-ajax.js URL: http://svn.apache.org/viewvc/incubator/wicket/branches/wicket-1.x/wicket/src/main/java/wicket/ajax/wicket-ajax.js?view=diff&rev=497647&r1=497646&r2=497647 ============================================================================== --- incubator/wicket/branches/wicket-1.x/wicket/src/main/java/wicket/ajax/wicket-ajax.js (original) +++ incubator/wicket/branches/wicket-1.x/wicket/src/main/java/wicket/ajax/wicket-ajax.js Thu Jan 18 16:10:50 2007 @@ -164,6 +164,7 @@ Wicket.replaceOuterHtml = function(element, text) { if (element.outerHTML) { // internet explorer or opera var parent = element.parentNode; + // find out the element's index and next element (if any). we need to access // newly created elements to execute theirs <script elements @@ -180,15 +181,13 @@ // indicates whether we should manually invoke javascripts in the replaced content var forceJavascriptExecution = true; - + var tn = element.tagName; - - if (tn != 'TBODY' && tn != 'TR' && tn != "TD" && tn != "THEAD" && tn != "TH" && tn != "TFOOT" && tn != "COLGROUP" && tn != "COL") { + if (tn != 'TBODY' && tn != 'TR' && tn != "TD" && tn != "THEAD") { element.outerHTML = text; } else { // this is a hack to get around the fact that internet explorer doesn't allow the - // outerHtml attribute on table elements - // also opera has issues with such replacement + // outerHtml attribute on table elements var tempDiv = document.createElement("div"); tempDiv.innerHTML = '<table style="display: none">' + text + '</table>'; element.parentNode.replaceChild(tempDiv.getElementsByTagName(tn).item(0), element); @@ -205,7 +204,6 @@ } } else { - // create range and fragment var range = element.ownerDocument.createRange(); range.selectNode(element); @@ -977,7 +975,7 @@ var head = document.getElementsByTagName("head")[0]; var nodes = head.getElementsByTagName(element.tagName); for (var i = 0; i < nodes.length; ++i) { - var node = nodes[i]; + var node = nodes[i]; if (node.tagName.toLowerCase() == element.tagName.toLowerCase() && (node.getAttribute(mandatoryAttribute) == attr || node.getAttribute(mandatoryAttribute+"_") == attr)) { @@ -1007,8 +1005,10 @@ if (content == null || content == "") content = element.text; Wicket.Head.addJavascript(content); - } - if (typeof(element.tagName) != "undefined" && element.tagName.toLowerCase() == "script") { + } + if (typeof(element) != "undefined" && + typeof(element.tagName) != "undefined" && + element.tagName.toLowerCase() == "script") { add(element); } else { // we need to check if there are any children, becase Safari