Escaping the & in Attributes.Add()

  • Thread starter Nathan Sokalski
  • Start date
N

Nathan Sokalski

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

Jesse Houwing

Hello Nathan,
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.

Any attribute must escape the HTML special characters. An onCLick as well.
Are you sure this is causing the error?
 
N

Nathan Sokalski

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

Jesse Houwing

Hello Nathan,
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.

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
 

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. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,769
Messages
2,569,580
Members
45,054
Latest member
TrimKetoBoost

Latest Threads

Top