[Laszlo-checkins] r8037 - openlaszlo/trunk/WEB-INF/lps/lfc/kernel/dhtml

max@openlaszlo.org max at openlaszlo.org
Thu Feb 14 20:53:16 PST 2008


Author: max
Date: 2008-02-14 20:53:11 -0800 (Thu, 14 Feb 2008)
New Revision: 8037

Modified:
   openlaszlo/trunk/WEB-INF/lps/lfc/kernel/dhtml/LzSprite.js
Log:
Change 20080214-maxcarlson-9 by maxcarlson at Roboto on 2008-02-14 19:57:57 PST
    in /Users/maxcarlson/openlaszlo/trunk
    for http://svn.openlaszlo.org/openlaszlo/trunk

Summary: Fix errors on page reloads in IE DHTML

New Features:

Bugs Fixed: LPP-5347 - Using IE, browser reports 'no such interface' javascript error when closing or refreshing the window

Technical Reviewer: promanik
QA Reviewer: a.bargull at intensis.de
Doc Reviewer: (pending)

Documentation:

Release Notes:

Details: Check div.nodeType in discardElement()
    

Tests: See LPP-5347



Modified: openlaszlo/trunk/WEB-INF/lps/lfc/kernel/dhtml/LzSprite.js
===================================================================
--- openlaszlo/trunk/WEB-INF/lps/lfc/kernel/dhtml/LzSprite.js	2008-02-15 04:00:29 UTC (rev 8036)
+++ openlaszlo/trunk/WEB-INF/lps/lfc/kernel/dhtml/LzSprite.js	2008-02-15 04:53:11 UTC (rev 8037)
@@ -1527,19 +1527,22 @@
     if (LzSprite.prototype.quirks.ie_leak_prevention) {
         // Used instead of node.removeChild to eliminate 'pseudo-leaks' in IE - see http://outofhanwell.com/ieleak/index.php?title=Fixing_Leaks
         //alert('__discardElement' + element);
-        if (element.owner) element.owner = null;
-        var garbageBin = document.getElementById('__LZIELeakGarbageBin');
-        if (!garbageBin) {
-            garbageBin = document.createElement('DIV');
-            garbageBin.id = '__LZIELeakGarbageBin';
-            garbageBin.style.display = 'none';
-            document.body.appendChild(garbageBin);
+        if( ( element.nodeType >= 1 ) && ( element.nodeType < 13 ) )  {
+            // ensures element is valid node 
+            if (element.owner) element.owner = null;
+            var garbageBin = document.getElementById('__LZIELeakGarbageBin');
+            if (!garbageBin) {
+                garbageBin = document.createElement('DIV');
+                garbageBin.id = '__LZIELeakGarbageBin';
+                garbageBin.style.display = 'none';
+                document.body.appendChild(garbageBin);
+            }
+
+            // move the element to the garbage bin
+            garbageBin.appendChild(element);
+            garbageBin.innerHTML = '';
+            //garbageBin.outerHTML = '';
         }
-
-        // move the element to the garbage bin
-        garbageBin.appendChild(element);
-        garbageBin.innerHTML = '';
-        //garbageBin.outerHTML = '';
     } else {
         if (element.parentNode) element.parentNode.removeChild(element);
     }



More information about the Laszlo-checkins mailing list