[KSS-checkins] r50793 - kukit/kukit.js/branch/improve-demos/kukit
jone at codespeak.net
jone at codespeak.net
Sun Jan 20 10:46:33 CET 2008
Author: jone
Date: Sun Jan 20 10:46:31 2008
New Revision: 50793
Modified:
kukit/kukit.js/branch/improve-demos/kukit/dom.js
kukit/kukit.js/branch/improve-demos/kukit/plugin.js
Log:
Fix for tbody-insertion in firefox
Modified: kukit/kukit.js/branch/improve-demos/kukit/dom.js
==============================================================================
--- kukit/kukit.js/branch/improve-demos/kukit/dom.js (original)
+++ kukit/kukit.js/branch/improve-demos/kukit/dom.js Sun Jan 20 10:46:31 2008
@@ -56,9 +56,16 @@
Sarissa.clearChildNodes(node);
};
-dom.parseHTMLNodes = function(txt){
- var node = document.createElement('div');
- node.innerHTML = txt;
+dom.parseHTMLNodes = function(txt, targetNode){
+ var tagName = targetNode.tagName;
+ var tbody = false;
+ if(tagName.toLowerCase()=='tbody') {
+ // special treatment of tbody because of ff2 behaviour
+ var node = dom.parseHTMLNodesForTBody(txt);
+ } else {
+ var node = document.createElement(tagName);
+ node.innerHTML = txt;
+ }
var resultNodes = [];
for (var i=0; i<node.childNodes.length; i++) {
resultNodes.push(node.childNodes.item(i));
@@ -66,6 +73,14 @@
return resultNodes;
};
+dom.parseHTMLNodesForTBody = function(txt) {
+ var node = document.createElement('table');
+ if(txt.indexOf('<tbody')==-1) {
+ node.innerHTML = '<tbody>' + txt + '</tbody>';
+ }
+ return node.firstChild;
+};
+
/*
* really the query should start from the document root, but
* limited to inNodes subtrees!
Modified: kukit/kukit.js/branch/improve-demos/kukit/plugin.js
==============================================================================
--- kukit/kukit.js/branch/improve-demos/kukit/plugin.js (original)
+++ kukit/kukit.js/branch/improve-demos/kukit/plugin.js Sun Jan 20 10:46:31 2008
@@ -685,11 +685,11 @@
oper.evaluateParameters(['html'], {'withKssSetup':true});
oper.evalBool('withKssSetup');
var node = oper.node;
- var elements = kukit.dom.parseHTMLNodes(oper.parms.html);
+ var parentNode = node.parentNode;
+ var elements = kukit.dom.parseHTMLNodes(oper.parms.html, parentNode);
var length = elements.length;
;;; kukit.logDebug(length + ' nodes inserted.');
if (length > 0) {
- var parentNode = node.parentNode;
var insertedNodes = [];
// insert the last node
var next = elements[length-1];
@@ -759,8 +759,8 @@
;;; oper.componentName = '[insertHTMLAfter] action';
oper.evaluateParameters(['html'], {'withKssSetup':true});
oper.evalBool('withKssSetup');
- var content = kukit.dom.parseHTMLNodes(oper.parms.html);
var parentNode = oper.node.parentNode;
+ var content = kukit.dom.parseHTMLNodes(oper.parms.html, parentNode);
var toNode = kukit.dom.getNextSiblingTag(oper.node);
if (toNode == null) {
kukit.dom.appendChildren(content, parentNode);
@@ -780,9 +780,9 @@
;;; oper.componentName = '[insertHTMLBefore] action';
oper.evaluateParameters(['html'], {'withKssSetup':true});
oper.evalBool('withKssSetup');
- var content = kukit.dom.parseHTMLNodes(oper.parms.html);
var toNode = oper.node;
var parentNode = toNode.parentNode;
+ var content = kukit.dom.parseHTMLNodes(oper.parms.html, parentNode);
kukit.dom.insertBefore(content, parentNode, toNode);
;;; kukit.logDebug(content.length + ' nodes inserted.');
// update the events for the new nodes
@@ -797,7 +797,7 @@
;;; oper.componentName = '[insertHTMLAsLastChild] action';
oper.evaluateParameters(['html'], {'withKssSetup':true});
oper.evalBool('withKssSetup');
- var content = kukit.dom.parseHTMLNodes(oper.parms.html);
+ var content = kukit.dom.parseHTMLNodes(oper.parms.html, oper.node);
kukit.dom.appendChildren(content, oper.node);
;;; kukit.logDebug(content.length + ' nodes inserted.');
// update the events for the new nodes
@@ -812,7 +812,7 @@
;;; oper.componentName = '[insertHTMLAsFirstChild] action';
oper.evaluateParameters(['html'], {'withKssSetup':true});
oper.evalBool('withKssSetup');
- var content = kukit.dom.parseHTMLNodes(oper.parms.html);
+ var content = kukit.dom.parseHTMLNodes(oper.parms.html, oper.node);
var parentNode = oper.node;
var toNode = parentNode.firstChild;
if (toNode == null) {
More information about the Kukit-checkins
mailing list