Re: unload event more restrictive now on Safari 3.1 ?



On Jul 1, 10:43 pm, Jorge <jo...@xxxxxxxxxxxxxxxxx> wrote:
On Jul 2, 4:13 am, eliveme...@xxxxxxxxx wrote:





On Jul 1, 7:05 pm, Jorge <jo...@xxxxxxxxxxxxxxxxx> wrote:

On Jun 16, 4:29 pm, Stevo <n...@xxxxxxxxxxxx> wrote:

I've been using the unload event for a long time. I have this code,
which I've abstracted and made into a stripped down simple test case
below, and it works fine on the major browsers (IE5+, Firefox, Opera).
It also works for all Safari versions before 3.1.

It's as if they've deliberately made a change to prevent some actions in
the unload handler. Has anyone heard of such a restriction?

(...)

Each time you click the fin form button, you see (via a http monitor
like Charles or Fiddler) that the image load occurs with the current
time delta since page load as a cache-busting query string. The file
gets a 404, but that doesn't matter, it's working fine when fin is
called from the form button.

If you instead click the link (or close the browser), fin is also called
(confirmable by uncommenting the alert), but the image load doesn't occur.

Hi,

When the window is closed, I think that by the time the handler gets
called, Safari knows that the screen image of the current page is not
going to be refreshed again, this may explain why the trigger to fetch
the image never really happens.

When surfing away to another page, inserting the image into the DOM
migth be what forces it to load... or not.

Here the image gets loaded : See :http://tinyurl.com/6lrv49

You could instead use a synchronous XHR instead, S.O.P. permitting, to
send your data. (If the image request is being made just to send some
data back)
Or, you could try to request a <script> instead ? (it's S.O.P.-free,
and has nothing to do with screen updates).

HTH,
--Jorge.

Hi Jorge,

Unfortunatelly I can't use XMLHttpRequest is my script will be loaded
on 3rd party sites and permissions to run it crosss site are denied
(tried it before). The sad part is that Safari simly refuses to load
the images on page unload. I am trying to load the images using
img.src = ... and it works in all browsers but Safari. This will not
allow me to track exit links in Safari so if anyone has suggestions
how to overcome it I would really appreciate it. Thanks.

Have you tried it with something like this

    script= document.createElement("script");
    script.type ='text/javascript';
    script.charset ='utf-8';
    script.src= "whatever?"+yourData;
    (document.getElementsByTagName('head')[0]).appendChild(script);

instead of the <img> ?

--Jorge.- Hide quoted text -

- Show quoted text -

Hi Jorge,

I've tried the script approach you have suggested. Unfortunatelly it
did not work on Safari again. It did work for all other browsers (IE,
Firefox, Opera). As beofre, I suspect that Safari does not load or ads
element to the document while the document is unloading. The code is
executing without an error but the object doesn't load. I think this
question can only be answered by someone on Safari's technical team.:(
Not sure what else I can try at this point. Thanks anyways.

.