Escaping the & in Attributes.Add()

Discussion in 'ASP .Net' started by Nathan Sokalski, Oct 2, 2007.

  1. I am adding an onmouseover attribute using the Attributes.Add() method, and
    the String I am using for the value contains the & character. However, when
    rendered the & is converted to the HTML representation of & which causes
    my JavaScript not to work. What can I do to prevent the Add() method from
    modifying my value? Thanks.
     
    Nathan Sokalski, Oct 2, 2007
    #1
    1. Advertisements

  2. Hello Nathan,
    Any attribute must escape the HTML special characters. An onCLick as well.
    Are you sure this is causing the error?
     
    Jesse Houwing, Oct 2, 2007
    #2
    1. Advertisements

  3. Yes, I am sure because I create the value by assigning a value to a String
    variable, and then using that variable in the Attributes.Add() method. For
    example:

    Dim onmouseover as String= "my javascript code" 'This contains &'s in my
    actual code
    mycontrol.Attributes.Add("onmouseover",onmouseover)

    When I used this technique and ran a Debug session, the String onmouseover
    looked exactly as I wanted, but the rendered code had replaced the &'s with
    & which is what I am trying to avoid. Any ideas? Thanks.
     
    Nathan Sokalski, Oct 2, 2007
    #3
  4. Hello Nathan,
    There are no idea's. The spec says that every attribute must be encoded using
    html encoding. That includes the &. The javascript perser should work.

    If you run it in Firefox, what is the message on the javascript console when
    you click the html element in question (firefox is usually a bit mor eoncise
    in it's error messages). There must be somethign else wrong here.

    I tested the code below:

    <html>
    <body>
    <form>
    <input type="button" onclick="alert(true &amp;&amp; true);" value="test">
    </form>
    </body>
    </html>

    And it works in both Internet Explorer and Firefox (it should say true in
    the alert when you click the button).

    Jesse
     
    Jesse Houwing, Oct 2, 2007
    #4
    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.