Commit Graph

4 Commits (6c64ce0336240be16eeae81313e53c630cb196bc)

Author SHA1 Message Date
Joey Hess ff422a1d89 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.
2009-12-12 15:47:47 -05:00
Joey Hess 002be0c87a partial support for calling onload once the DOM is ready
This adds support for gecko and newer versions of opera
to call onload once the DOM is ready, rather than waiting for
all images in the page to load. Makes relativedate behave
somewhat better.

Dealing with this means jumping into the browser
incompatability waters that I prefer to avoid.
Full solutions for most of the major browsers are listed here:
http://dean.edwards.name/weblog/2006/06/again/

However, no *license* is listed there, so I can't use that code. Also, the more
involved code appears to have various issues (such as the inline IE code not
working via https). So I only added the simple call to a hook needed
for gecko/opera.

It seems that the only standards-compliant way to do this is using the
`defer` attribute to a `script` tag, using an external script that will be
loaded once the DOM is ready, and can call onload. However, that has
browser compatability issues of its own, since not all browsers honor
`defer`.

Perhaps I should really just be using one of the javascript frameworks, that
include code to solve this for the major browsers. But something about them
still puts me off, and this issue is minor enough that I'm willing to live
with incomplete support for now.
2008-10-19 15:45:29 -04:00
Joey Hess 18806fa6b0 allow ikiwiki.js to be loaded twice w/o clobbering previous hooks
Clearly it's suboptimal for it to be loaded twice, but this is a quick fix
at least.
2008-10-18 12:47:08 -04:00
Joey Hess 79b376f991 Add an underlay for javascript, and add ikiwiki.js containing some utility code.
* Add an underlay for javascript, and add ikiwiki.js containing some utility
  code.
* toggle: Stop embedding the full toggle code on each page using it, and
  move it to toggle.js in the javascript underlay.
2008-10-17 20:28:18 -04:00