Improve javascript onload handling.
authorJoey Hess <joey@gnu.kitenet.net>
Sat, 12 Dec 2009 20:47:47 +0000 (15:47 -0500)
committerJoey Hess <joey@gnu.kitenet.net>
Sat, 12 Dec 2009 20:47:47 +0000 (15:47 -0500)
I noticed the onload hook running twice sometimes when using chromium.
Change from using arguments.callee.done to a onload_done variable fixed it.
I guess that the callee differed in chromium.

Probably the cause of the problem is that chrome supports both
window.onload and document.addEventListener.

debian/changelog
underlays/javascript/ikiwiki.js

index ccf45df94e8f7999fa4a0912961901669b36196e..eb8248804ec1c5fd1259a66598b33c0afb837c3c 100644 (file)
@@ -3,6 +3,7 @@ ikiwiki (3.20091203) UNRELEASED; urgency=low
   * cvs: Add missing bit to Automator.
   * Add complete Spanish basewiki translation done by Fernando Gonzalez de
     Requena.
+  * Improve javascript onload handling.
 
  -- Joey Hess <joeyh@debian.org>  Wed, 02 Dec 2009 17:22:21 -0500
 
index 1252f244f8429faab7d5e7dccdd175bdd37a33f7..aebc5cf7ed66395ec8277a1e748d29184226f960 100644 (file)
@@ -10,11 +10,13 @@ if (document.addEventListener) {
 // other browsers
 window.onload = run_hooks_onload;
 
+var onload_done = 0;
+
 function run_hooks_onload() {
        // avoid firing twice
-       if (arguments.callee.done)
+       if (onload_done)
                return;
-       arguments.callee.done = true;
+       onload_done = true;
 
        run_hooks("onload");
 }