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. 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
    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

    Dim onmouseover as String= "my javascript code" 'This contains &'s in my
    actual code

    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
  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:

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

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

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