Adding "onunload" JavaScript event handler to body in code-behind

Discussion in 'ASP .Net' started by Laurent Bugnion, Jan 21, 2006.

  1. Hi,

    I am trying to programatically add an "onunload" event handler to the
    "body" tag of an ASPX page. I am doing this from a Custom Control
    located on this page.

    To do this, I added "runat=server" to the body tag, which provides me
    access to it in the code-behind through a HtmlControl. I can then
    manipulate the Attributes collection, which is what I needed. So far so
    good.

    However, I found out that "runat=server" generates a compilation error
    (CS1012: Too many characters in character literal) if the "body" tag
    already has an onunload event handler (in the ASPX code). This is a
    problem, because I wish that the user of my custom control be free to
    specify event handlers in the body tag, and my control should simply add
    its own.

    So the question is: Is there a way to use "runat=server" on a body tag
    with an onunload event handler?

    I am using the framework 1.1.

    Unfortunately, there are no "RegisterEndScript" methods (similar to
    "RegisterStartupScript") in the Page class ;-)

    Thanks,
    Laurent
     
    Laurent Bugnion, Jan 21, 2006
    #1
    1. Advertisements

  2. Laurent Bugnion

    Guest Guest

    You can use the window object. Example:

    string scrp = @"<script>
    window.onunload =test;
    function test()
    {
    alert('yo');
    }
    </script>

    Page.RegisterClientScriptBlock("unload",scr);

    --Peter
     
    Guest, Jan 21, 2006
    #2
    1. Advertisements

Ask a Question

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

You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.