onload event doesn't work

Discussion in 'Javascript' started by Andy Fish, Dec 16, 2005.

  1. Andy Fish

    Andy Fish Guest

    Hi,

    I have an asp.net web application which uses a pop-up form that works a bit
    like a dialog box. when the user clicks "OK" it does a postback (basically a
    form post if you don't know .net) to save the contents of the form, and then
    I put an onload event to do a window.close.

    this works fine for hundreds of people on different browsers. However, for
    one user the window does not close.

    The user has a brand new PC from Dell with Norton Internet Security and is
    using IE. other javascipt on the site seems to work fine. She has tried
    adding the site to her IE "trusted sites" list with no effect. We have tried
    enabling javascript errors in IE and none are shown.

    Does anyone know of any settings in NIS or any other browser security
    add-ons (especially supplied by dell) that might cause this behaviour?

    Is there a better way to achieve the result I'm after (i.e. posting a form
    and having the window close as soon as the data is posted) other than using
    an onload event to do window.close?

    TIA

    Andy
    Andy Fish, Dec 16, 2005
    #1
    1. Advertising

  2. Andy Fish wrote:

    > I have an asp.net web application which uses a pop-up form


    What is a "pop-up form"?

    > that works a bit like a dialog box. when the user clicks "OK" it does a
    > postback (basically a form post if you don't know .net) to save the
    > contents of the form, and then I put an onload event to do a window.close.
    >
    > this works fine for hundreds of people on different browsers.


    Well, probably it will not work for me.

    > However, for one user the window does not close.
    >
    > The user has a brand new PC from Dell with Norton Internet Security and is
    > using IE. other javascipt on the site seems to work fine. She has tried
    > adding the site to her IE "trusted sites" list with no effect. We have
    > tried enabling javascript errors in IE and none are shown.


    Has she Active Scripting enabled for either Security Zone?

    > Does anyone know of any settings in NIS or any other browser security
    > add-ons (especially supplied by dell) that might cause this behaviour?


    As a result of its built-in popup blocker, Norton _InSecurity_ probably
    disables the `onload' event handler by injecting code not written by you.
    Furthermore "does not close" can mean anything. For example, it is likely
    that the window "does not close" because the user is presented a security
    confirm box that is there in order to protect her from losing her window
    history. Or the security settings of IE with XP SP-2 (indicated by the
    new Dell PC) simply prevent windows not opened through scripting to be
    closed by scripting.

    Recommending her to uninstall pseudo-security applications like NIS and
    to get informed about system and network security being a Good Thing[1]
    aside:

    Never ever mess with browser windows without the users' explicit consent,
    that is, do not suppose anything to work regarding this without their direct
    interaction (and the `onload' event handler does not classify as such).


    Followup-To comp.lang.javascript

    PointedEars
    ___________
    [1] <URL:http://www.iks-jena.de/mitarb/lutz/usenet/Firewall.en.html>
    Thomas 'PointedEars' Lahn, Dec 16, 2005
    #2
    1. Advertising

  3. Andy Fish

    Andy Fish Guest

    Thanks for the response.

    The user story is simple, the user clicks a link on page A which pops up
    (using window.open) page B containing some form controls. the user
    enters/selects the values and then clicks "OK" at which point the window
    closes and the settings must be saved to the server (via a form post) and
    the window closes.

    If there is any way of doing this without putting window.close in the onload
    event, I would be eager to find out. As fas as I'm concerned, I am closing
    the window with their consent (because they clicked the OK button).

    It is a prerequisite of my application that users must have active scripting
    enabled and pop-up blockers disabled for this site and this is true for the
    user experiencing the problem. I don't have a mind if people want to disable
    JS or block pop-ups; they just can't use my application (their loss ;-)

    plenty of other users (probably most) have XP SP2 and there is only one who
    has this problem.


    "Thomas 'PointedEars' Lahn" <> wrote in message
    news:...
    > Andy Fish wrote:
    >
    >> I have an asp.net web application which uses a pop-up form

    >
    > What is a "pop-up form"?
    >
    >> that works a bit like a dialog box. when the user clicks "OK" it does a
    >> postback (basically a form post if you don't know .net) to save the
    >> contents of the form, and then I put an onload event to do a
    >> window.close.
    >>
    >> this works fine for hundreds of people on different browsers.

    >
    > Well, probably it will not work for me.
    >
    >> However, for one user the window does not close.
    >>
    >> The user has a brand new PC from Dell with Norton Internet Security and
    >> is
    >> using IE. other javascipt on the site seems to work fine. She has tried
    >> adding the site to her IE "trusted sites" list with no effect. We have
    >> tried enabling javascript errors in IE and none are shown.

    >
    > Has she Active Scripting enabled for either Security Zone?
    >
    >> Does anyone know of any settings in NIS or any other browser security
    >> add-ons (especially supplied by dell) that might cause this behaviour?

    >
    > As a result of its built-in popup blocker, Norton _InSecurity_ probably
    > disables the `onload' event handler by injecting code not written by you.
    > Furthermore "does not close" can mean anything. For example, it is likely
    > that the window "does not close" because the user is presented a security
    > confirm box that is there in order to protect her from losing her window
    > history. Or the security settings of IE with XP SP-2 (indicated by the
    > new Dell PC) simply prevent windows not opened through scripting to be
    > closed by scripting.
    >
    > Recommending her to uninstall pseudo-security applications like NIS and
    > to get informed about system and network security being a Good Thing[1]
    > aside:
    >
    > Never ever mess with browser windows without the users' explicit consent,
    > that is, do not suppose anything to work regarding this without their
    > direct
    > interaction (and the `onload' event handler does not classify as such).
    >
    >
    > Followup-To comp.lang.javascript
    >
    > PointedEars
    > ___________
    > [1] <URL:http://www.iks-jena.de/mitarb/lutz/usenet/Firewall.en.html>
    Andy Fish, Dec 16, 2005
    #3
  4. Andy Fish

    Randy Webb Guest

    Thomas 'PointedEars' Lahn said the following on 12/16/2005 6:24 AM:
    > Andy Fish wrote:
    >
    >
    >>I have an asp.net web application which uses a pop-up form

    >
    >
    > What is a "pop-up form"?


    I will try to explain this to you as simple as can be so that maybe you
    can understand it since English is not your native language PointedHead.

    pop-up - Generally refers to a - gasp - popup window.
    form - If you don't know what a form is, give up the web.

    Put them together:

    popup form - form in a popup window.

    I know, that is a stretch for you to comprehend but try, you can manage it.

    >>that works a bit like a dialog box. when the user clicks "OK" it does a
    >>postback (basically a form post if you don't know .net) to save the
    >>contents of the form, and then I put an onload event to do a window.close.
    >>this works fine for hundreds of people on different browsers.

    >
    > Well, probably it will not work for me.


    As well it may not work for a lot of people that have window.open
    disabled or it is not present for some other reason.

    >
    >>However, for one user the window does not close.
    >>
    >>The user has a brand new PC from Dell with Norton Internet Security and is
    >>using IE. other javascipt on the site seems to work fine. She has tried
    >>adding the site to her IE "trusted sites" list with no effect. We have
    >>tried enabling javascript errors in IE and none are shown.

    >
    >
    > Has she Active Scripting enabled for either Security Zone?
    >


    Indication 1: "other javascript on the site seems to work fine"
    indicates that Scripting is indeed enabled. Learn to read, and
    comprehend what you read, and you will go a lot further than you already
    are Thomas. Your idiotic pedantics get old after a while.

    >>Does anyone know of any settings in NIS or any other browser security
    >>add-ons (especially supplied by dell) that might cause this behaviour?

    >
    >
    > As a result of its built-in popup blocker, Norton _InSecurity_ probably
    > disables the `onload' event handler by injecting code not written by you.


    NIS doesn't block popups by disabling the onload, it disables popup
    windows by disabling the window.open call by redefining it to return
    false when called.

    > Furthermore "does not close" can mean anything.


    No, it is simple. It doesn't close. Thats not that difficult to understand.


    > For example, it is likely that the window "does not close" because the
    > user is presented a security confirm box that is there in order to protect
    > her from losing her window history.


    Hmmm. You open a popup, you close that popup. There is no "window
    history" to lose. If the user is presented a security confirm window on
    a popup that was opened by script then your UA is severely broken. And I
    know of *no* UA that when you manage to open a window with window.open
    that will, by default, give you a confirm box when you attempt to
    execute window.close() on that window.


    > Or the security settings of IE with XP SP-2 (indicated by the
    > new Dell PC) simply prevent windows not opened through scripting to be
    > closed by scripting.


    Where did you come up with that Rubbish?

    > Recommending her to uninstall pseudo-security applications like NIS and
    > to get informed about system and network security being a Good Thing[1]
    > aside:


    But totally 100% irrelevant to anything but your diatribe about NIS.

    > Never ever mess with browser windows without the users' explicit consent,
    > that is, do not suppose anything to work regarding this without their direct
    > interaction (and the `onload' event handler does not classify as such).


    More Rubbish that is irrelevant to the question.

    >
    > Followup-To comp.lang.javascript


    microsoft.public.dotnet.framework.aspnet added back as it should have
    been left alone to start with.

    > [1] <URL:http://www.iks-jena.de/mitarb/lutz/usenet/Firewall.en.html>


    More irrelevant rubbish.

    --
    Randy
    comp.lang.javascript FAQ - http://jibbering.com/faq & newsgroup weekly
    Javascript Best Practices - http://www.JavascriptToolbox.com/bestpractices/
    Randy Webb, Dec 17, 2005
    #4
  5. Andy Fish wrote:

    > The user story is simple, the user clicks a link on page A which pops up
    > (using window.open) page B containing some form controls. the user
    > enters/selects the values and then clicks "OK" at which point the window
    > closes and the settings must be saved to the server (via a form post) and
    > the window closes.


    ACK. I wondered if you meant submitting to a window from a form in another
    window, e.g., hence my question.

    > If there is any way of doing this without putting window.close in the
    > onload event, I would be eager to find out.


    What if you simply did not? This would help users as they would see if
    submitting their data was successful or not (and they could go back and
    try again if it was not). And then you included a Close button in the
    response, if you thought that users cannot find or do not know the
    "Close Window" feature of the used UA/window manager.

    > As fas as I'm concerned, I am closing the window with their consent
    > (because they clicked the OK button).


    They clicked the OK button in order to submit data, not in order to close
    the window containing the resulting response. They gave you their explicit
    consent to retrieve the submitted data, not to close the window that
    submitted it :)

    > It is a prerequisite of my application that users must have active
    > scripting enabled and pop-up blockers disabled for this site and this is
    > true for the user experiencing the problem. I don't have a mind if people
    > want to disable JS or block pop-ups; they just can't use my application
    > (their loss ;-)
    >
    > plenty of other users (probably most) have XP SP2 and there is only one
    > who has this problem.


    Then your user should disable or even uninstall NIS, which as I pointed out
    would be a Good Thing anyway, and see if that helps. However, I wonder why
    you do not want to let users see the result of their submit action which
    would avoid this problem, too.

    And please do not

    > [top post]


    <URL:http://jibbering.com/faq/faq_notes/pots1.html#ps1Post>

    TIA.


    PointedEars
    Thomas 'PointedEars' Lahn, Dec 18, 2005
    #5
  6. Andy Fish

    Csaba Gabor Guest

    Andy Fish wrote:
    > Is there a better way to achieve the result I'm after (i.e. posting a form
    > and having the window close as soon as the data is posted) other than using
    > an onload event to do window.close?


    There is another approach. First, have a hidden iframe in your main
    page looking something like this (you may need to futz with some of the
    attributes. For example, you may wish to hold off on that style
    setting till after you get everything else working):
    <iframe name=receptacle style="display:none" src=""></iframe>

    In the popup, make sure your form declaration includes a target:
    <form ... target=receptacle id=myform ...>

    Finally, right after submitting the form via javascript, close the
    window:
    ....
    document.getElementById('myform').submit();
    window.close();

    The point of this is to close the window upon submission as opposed to
    waiting for the sumission to be successful. There is a danger, which
    PointedEars alluded to, that the submission may not be successful for
    any number of reasons. In fact, you can count on it happening from
    time to time, so your app should be prepared to deal with this
    situation. Oh yes, and make sure to change the text on the button from
    'OK' or 'Submit' to 'Submit and close window' so nobody claims the
    button does more than it promised ;).

    Sometimes, windows put up a confirmation dialog when being closed by
    script. You may forego a class of such confirmations by doing
    window.opener = "me";
    (I have encountered this when sequencing windows with VBScript).

    Csaba Gabor from Vienna
    Csaba Gabor, Dec 18, 2005
    #6
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Fabio R.
    Replies:
    0
    Views:
    770
    Fabio R.
    Mar 25, 2005
  2. Andy Fish

    onload event doesn't work

    Andy Fish, Dec 16, 2005, in forum: ASP .Net
    Replies:
    3
    Views:
    4,242
    Csaba Gabor
    Dec 18, 2005
  3. Replies:
    3
    Views:
    1,615
    S. Justin Gengo
    Dec 27, 2005
  4. David Otton

    window.onload and body.onload differences

    David Otton, Nov 4, 2004, in forum: Javascript
    Replies:
    2
    Views:
    522
    Martin Honnen
    Nov 4, 2004
  5. Replies:
    5
    Views:
    240
    Thomas 'PointedEars' Lahn
    May 15, 2005
Loading...

Share This Page