Hi,

> Probably some other Javascript code (which isn't in my power to
> change) catches the dom:loaded event before, so that my code is
> basically ignored (on IE).

Multiple observers can catch the event, so that's not it.

> Do you have any idea how I can solve the problem?

If it's not related to `alert`, then I'm afraid we on the list would
need a lot more to go on. Can you create a minimalist, self-contained
example[1] demonstrating the problem?

[1] http://proto-scripty.wikidot.com/self-contained-test-page

-- T.J.

On Aug 31, 11:34 pm, floce <florianzar...@gmail.com> wrote:
> Hi,
>
> Thanks to your help (I think) I got the problem, but just can't solve
> it:
> First I have to say that my code above was more illustrative (in a
> none Javascript-way ;) ), but the problem is the same.
> Probably some other Javascript code (which isn't in my power to
> change) catches the dom:loaded event before, so that my code is
> basically ignored (on IE).
>
> Do you have any idea how I can solve the problem?
>
> Thanks a lot!
>
> floce
>
> On 31 Aug., 23:36, "T.J. Crowder" <t...@crowdersoftware.com> wrote:
>
>
>
> > Hi,
>
> > I'm not surprised to hear that. The `alert` function brings the
> > JavaScript interpreter to a screeching halt and blocks darned near
> > everything. But it's that "darned near" that introduces uncertainty:
> > Does whatever causes the dom:loaded event on that browser queue,
> > waiting for the interpreter? Or not?
>
> > E.g., I think what's happening is that you're hooking the dom:loaded
> > event *after* it's already fired, because you didn't hook it until
> > after the `alert` returned, and the `alert` waits for the user in a
> > very non-JavaScript way.
>
> > Fundamentally, the browser probably _should_ queue the event, but the
> > event queue is not the same as the execution queue on all browsers and
> > I wouldn't rely on it. In any case, it's trivial to reverse things and
> > get reliable behavior:
>
> > * * * *
> > document.observe("dom:loaded", function() {
> >     // Some code
> >     alert("bar");});
>
> > alert("foo");
> > * * * *
>
> > You still get the "foo" alert right away, it's just that you've hooked
> > the dom:loaded event beforehand and so presumably won't miss the event
> > when it occurs.
>
> > FWIW,
> > --
> > T.J. Crowder
> > Independent Software Consultant
> > tj / crowder software / comwww.crowdersoftware.com
>
> > On Aug 31, 5:39 pm, floce <florianzar...@gmail.com> wrote:
>
> > > Hi,
>
> > > I am currently facing a big problem and I hope that someone can help
> > > me:
> > > The following statement works perfectly in any browser except Internet
> > > Explorere:
>
> > > alert("foo");
> > > document.observe("dom:loaded", function() {
> > >     // Some code
> > >     alert("bar");
>
> > > });
>
> > > In this case Internet Explorer would only alert "foo" but never alerts
> > > "bar" while in any other browser two pop up boxes would appear. Does
> > > anyone know why this happens?
>
> > > Best regards,
>
> > > floce- Zitierten Text ausblenden -
>
> > - Zitierten Text anzeigen -

-- 
You received this message because you are subscribed to the Google Groups 
"Prototype & script.aculo.us" group.
To post to this group, send email to prototype-scriptacul...@googlegroups.com.
To unsubscribe from this group, send email to 
prototype-scriptaculous+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/prototype-scriptaculous?hl=en.

Reply via email to