Improve javascript onload handling.

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.
master
Joey Hess 2009-12-12 15:47:47 -05:00
parent 5b48f1412e
commit ff422a1d89
2 changed files with 5 additions and 2 deletions

1
debian/changelog vendored
View 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

View 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");
}