Problem With String Containing JavaScript Escape Character

J

Jeff S

In a VB.NET code behind module, I build a string for a link that points to a
JavaScript function. The two lines of code below show what is relevant.

PopupLink = "javascript:popUpWindow(" & Chr(34) & PopUpWindowTitle & Chr(34)
& ", " & Chr(34) & CurrentEventDetails & ")"
strTemp += "<BR><A HREF='#' onClick='" & PopupLink & "'>" & EventName &
"</A><BR>"

The problem I have is that when the string variables [PopUpWindowTitle] or
[CurrentEventDetails] contain a string with an apostrophe, then the server
throws an error "Unterminated String Constant". This error shows up prior to
the page rendering in the browser (or as the page is being rendered to the
browser - I'm not sure which - but it's before the page shows up in the
browser).

I tried including JavaScript's "\" escape character - but this does not
solve the problem (e.g., PopUpWindowTitle= Replace(PopUpWindowTitle, "'",
"\' "). The server still throws the Unterminated String Constant error.

What can I do about this? I need to include apostrophes in the JavaScript
function call string and VB.NET is ignoring JavaScript's Escape
character -yet honoring JavaScript's syntax rules.

Thanks in advance.
 
M

mikeb

Jeff said:
In a VB.NET code behind module, I build a string for a link that points to a
JavaScript function. The two lines of code below show what is relevant.

PopupLink = "javascript:popUpWindow(" & Chr(34) & PopUpWindowTitle & Chr(34)
& ", " & Chr(34) & CurrentEventDetails & ")"
strTemp += "<BR><A HREF='#' onClick='" & PopupLink & "'>" & EventName &
"</A><BR>"

The problem I have is that when the string variables [PopUpWindowTitle] or
[CurrentEventDetails] contain a string with an apostrophe, then the server
throws an error "Unterminated String Constant". This error shows up prior to
the page rendering in the browser (or as the page is being rendered to the
browser - I'm not sure which - but it's before the page shows up in the
browser).

I tried including JavaScript's "\" escape character - but this does not
solve the problem (e.g., PopUpWindowTitle= Replace(PopUpWindowTitle, "'",
"\' "). The server still throws the Unterminated String Constant error.

What can I do about this? I need to include apostrophes in the JavaScript
function call string and VB.NET is ignoring JavaScript's Escape
character -yet honoring JavaScript's syntax rules.

Thanks in advance.

Are you really getting the error on the server, not the client?

I can see a couple possible problems:

1) in your 2 line sample above, you are missing a Chr(34) term in the
expression that builds PopupLink. it seems that the end of that
expression should be:

CurrentEventDetails & Chr(34) & ")"

not:

CurrentEventDetails & ")"

since you presumably need a closing double quote for the
CurrentEventDetails parameter to the client side PopUpWindow() function.

I'd be willing to bet that the missing Chr(34) expression is in your
code, it's probably just a typo in your post - <soapbox> to which I say,
"cut-n-paste is your friend". It's inexcusable to have typos in code
snippets that can be pasted from the real code. I mean, if you have a
typo in your snippet that is supposed to demonstrate the problem, how
are the readers supposed to know what the problem really is? </soapbox>

2) this is what I believe to be your real problem. Instead of:

Replace(PopUpWindowTitle, "'","\' ")

try using:

Replace(PopUpWindowTitle, "'","\x27")

or:

Replace(PopUpWindowTitle, "'","'")


The browser doesn't do JavaScript-style handling of escape sequences -
it uses Character Entities to escape special characters. And the
browser obviously needs to process the page before it can pass bits of
the page off to the JavaScript processor.

If you replace apostrophes with "\x27", that string of characters means
nothing to the browser, so that's what gets passed in to the JavaScript
processor, which sees it as an escape sequence for the apostrophe.

If you replace with "'", that string of characters is an 'Character
Entity' which the browser translates into an apostrophe before passing
the string on to the JavaScript processor.

Sorry for the long post.
 
J

Jeff S

Apparently you saw right through my little ploy to post simpler code to the
newsgroup than what I was actually working with (and with the omission/typo
you correctly concluded). Your <soapbox> points are well taken...

I proceeded to go with your suggestions, but I still get the error. So, I
posted the complete section of code below.

Additionally, on closer observation, the sequence that leads to the error
message appearing is as follows:
1. From the VS.NET IDE, I press F5 to run the project (with the ASPX page in
question set as the start page).
2. The browser window appear, and I see the top part of the ASPX page
rendered (e.g., the page header graphics show up).
3. The messagebox appears displaying the "Error: Unterminated string
constant" message.
4. At this point, only the top part of the page is rendered, and the message
box is displayed in the middle of the browser window. If I click on either
Yes or No (the only two buttons on the message box - prompting to debug or
not), the page does finish rendering in the browser. The page looks fine,
but the links are dead (presumably because the JavaScript function call part
of the link is invalid).

Here's the code (followed by runtime sample values):

For Each CalendarEntry In m_CalendarEntries
If CalendarEntry.EventDateTime = DateToGet Then

'Get the for the JS popup window ready
CurrentDate = CStr(CalendarEntry.EventDateTime)
CurrentEventDetails = CalendarEntry.LongDescription
CurrentEventContact = CalendarEntry.ContactName
CurrentEventContactEmail = CalendarEntry.ContactEMail
CurrentEventName = CalendarEntry.ShortDescription

'CurrentEventName = Replace(CurrentEventName, "'", "''")

'Replace(CurrentEventName, "'", "\x27")
Replace(CurrentEventName, "'", "'")

PopUpWindowTitle = CurrentEventName 'will do for now

PopupLink = "javascript:popUpWindow(" & Chr(34) & PopUpWindowTitle &
Chr(34) & ", " & Chr(34) & CurrentEventDetails & Chr(34) & ", " & Chr(34) &
CurrentEventContact & Chr(34) & ", " & Chr(34) & CurrentEventContactEmail &
Chr(34) & ", " & Chr(34) & CurrentDate & Chr(34) & ")"

strTemp += "<BR><A HREF='#' onClick='" & PopupLink & "'>" &
CurrentEventName & "</A><BR>"
End If
Next

Return strTemp
-------------------------
Sample runtime value of PopupLink:
"javascript:popUpWindow("Bob's Birthday Party", "Bob made it another year!",
"Bob", "(e-mail address removed)", "11/3/2003")"

Sample runtime value of strTemp:
"<BR><A HREF='#' onClick='javascript:popUpWindow("Bob's Birthday Party",
"Bob made it another year!", "Bob", "(e-mail address removed)", "11/3/2003")'>Bob's
Birthday Party</A><BR>"

The value "Bob's Birthday Party" comes from a database. If I remove the
apostrophe in the database, then the error does not occur.

Finally, This is obviously a function call; strTemp is eventually written by
the calling code to the .text property of a Label control.

Thanks for taking the time...

Jeff


mikeb said:
Jeff said:
In a VB.NET code behind module, I build a string for a link that points to a
JavaScript function. The two lines of code below show what is relevant.

PopupLink = "javascript:popUpWindow(" & Chr(34) & PopUpWindowTitle & Chr(34)
& ", " & Chr(34) & CurrentEventDetails & ")"
strTemp += "<BR><A HREF='#' onClick='" & PopupLink & "'>" & EventName &
"</A><BR>"

The problem I have is that when the string variables [PopUpWindowTitle] or
[CurrentEventDetails] contain a string with an apostrophe, then the server
throws an error "Unterminated String Constant". This error shows up prior to
the page rendering in the browser (or as the page is being rendered to the
browser - I'm not sure which - but it's before the page shows up in the
browser).

I tried including JavaScript's "\" escape character - but this does not
solve the problem (e.g., PopUpWindowTitle= Replace(PopUpWindowTitle, "'",
"\' "). The server still throws the Unterminated String Constant error.

What can I do about this? I need to include apostrophes in the JavaScript
function call string and VB.NET is ignoring JavaScript's Escape
character -yet honoring JavaScript's syntax rules.

Thanks in advance.

Are you really getting the error on the server, not the client?

I can see a couple possible problems:

1) in your 2 line sample above, you are missing a Chr(34) term in the
expression that builds PopupLink. it seems that the end of that
expression should be:

CurrentEventDetails & Chr(34) & ")"

not:

CurrentEventDetails & ")"

since you presumably need a closing double quote for the
CurrentEventDetails parameter to the client side PopUpWindow() function.

I'd be willing to bet that the missing Chr(34) expression is in your
code, it's probably just a typo in your post - <soapbox> to which I say,
"cut-n-paste is your friend". It's inexcusable to have typos in code
snippets that can be pasted from the real code. I mean, if you have a
typo in your snippet that is supposed to demonstrate the problem, how
are the readers supposed to know what the problem really is? </soapbox>

2) this is what I believe to be your real problem. Instead of:

Replace(PopUpWindowTitle, "'","\' ")

try using:

Replace(PopUpWindowTitle, "'","\x27")

or:

Replace(PopUpWindowTitle, "'","'")


The browser doesn't do JavaScript-style handling of escape sequences -
it uses Character Entities to escape special characters. And the
browser obviously needs to process the page before it can pass bits of
the page off to the JavaScript processor.

If you replace apostrophes with "\x27", that string of characters means
nothing to the browser, so that's what gets passed in to the JavaScript
processor, which sees it as an escape sequence for the apostrophe.

If you replace with "'", that string of characters is an 'Character
Entity' which the browser translates into an apostrophe before passing
the string on to the JavaScript processor.

Sorry for the long post.
 
J

Jeff S

Thanks, but Response.Write is not relevant to the original problem. You
might want to read questions before posting a response, or at least provide
an explanation of how your response is relevant to the specific question as
asked (if it's not obvious how it relates).




psb said:
response.write ("this is a double "" quote")

output = this is a double " quote




Jeff S said:
In a VB.NET code behind module, I build a string for a link that points
to
a
JavaScript function. The two lines of code below show what is relevant.

PopupLink = "javascript:popUpWindow(" & Chr(34) & PopUpWindowTitle & Chr(34)
& ", " & Chr(34) & CurrentEventDetails & ")"
strTemp += "<BR><A HREF='#' onClick='" & PopupLink & "'>" & EventName &
"</A><BR>"

The problem I have is that when the string variables [PopUpWindowTitle] or
[CurrentEventDetails] contain a string with an apostrophe, then the server
throws an error "Unterminated String Constant". This error shows up
prior
to
the page rendering in the browser (or as the page is being rendered to the
browser - I'm not sure which - but it's before the page shows up in the
browser).

I tried including JavaScript's "\" escape character - but this does not
solve the problem (e.g., PopUpWindowTitle= Replace(PopUpWindowTitle, "'",
"\' "). The server still throws the Unterminated String Constant error.

What can I do about this? I need to include apostrophes in the JavaScript
function call string and VB.NET is ignoring JavaScript's Escape
character -yet honoring JavaScript's syntax rules.

Thanks in advance.
 
P

psb

JUST SAY THANKS YOU BIATCH.

Dim PopUpLink As String
Dim PopUpWindowTitle As String = "window's title"
Dim CurrentEventDetails As String = "currentevent'sdetails"
Dim strTemp As String
Dim eventName As String

PopUpLink = "javascript:popUpWindow('" & PopUpWindowTitle.Replace("'",
"\'") & "', '" & CurrentEventDetails.Replace("'", "\'") & "')"
strTemp += "<BR><A HREF=""#"" onClick=""" & PopUpLink & """>" &
eventName & "</A><BR>"
Response.Write(strTemp)

JUST BECAUSE YOU ARE NOT GOOD AT DEBUGGING JAVASCRIPT AND HTML DON'T GET
HUFFY AT ME.

THIS WAS EASY!

Jeff S said:
Thanks, but Response.Write is not relevant to the original problem. You
might want to read questions before posting a response, or at least provide
an explanation of how your response is relevant to the specific question as
asked (if it's not obvious how it relates).




psb said:
response.write ("this is a double "" quote")

output = this is a double " quote
points
[PopUpWindowTitle]
or
[CurrentEventDetails] contain a string with an apostrophe, then the server
throws an error "Unterminated String Constant". This error shows up
prior
to
the page rendering in the browser (or as the page is being rendered to the
browser - I'm not sure which - but it's before the page shows up in the
browser).

I tried including JavaScript's "\" escape character - but this does not
solve the problem (e.g., PopUpWindowTitle= Replace(PopUpWindowTitle, "'",
"\' "). The server still throws the Unterminated String Constant error.

What can I do about this? I need to include apostrophes in the JavaScript
function call string and VB.NET is ignoring JavaScript's Escape
character -yet honoring JavaScript's syntax rules.

Thanks in advance.
 
J

Jeff S

Thanks - you saved me a bunch of time.

That's big of you to get all offended and STILL take the time to write an
accurate and understandable response. It works great. I obviously wasn't
high enough on the HTML/Javascript learning code to see how your original
response was relevant. Thanks for the boost!




psb said:
JUST SAY THANKS YOU BIATCH.

Dim PopUpLink As String
Dim PopUpWindowTitle As String = "window's title"
Dim CurrentEventDetails As String = "currentevent'sdetails"
Dim strTemp As String
Dim eventName As String

PopUpLink = "javascript:popUpWindow('" & PopUpWindowTitle.Replace("'",
"\'") & "', '" & CurrentEventDetails.Replace("'", "\'") & "')"
strTemp += "<BR><A HREF=""#"" onClick=""" & PopUpLink & """>" &
eventName & "</A><BR>"
Response.Write(strTemp)

JUST BECAUSE YOU ARE NOT GOOD AT DEBUGGING JAVASCRIPT AND HTML DON'T GET
HUFFY AT ME.

THIS WAS EASY!

Jeff S said:
Thanks, but Response.Write is not relevant to the original problem. You
might want to read questions before posting a response, or at least provide
an explanation of how your response is relevant to the specific question as
asked (if it's not obvious how it relates).




points
EventName
&
"</A><BR>"

The problem I have is that when the string variables
[PopUpWindowTitle]
or
[CurrentEventDetails] contain a string with an apostrophe, then the server
throws an error "Unterminated String Constant". This error shows up prior
to
the page rendering in the browser (or as the page is being rendered
to
the
browser - I'm not sure which - but it's before the page shows up in the
browser).

I tried including JavaScript's "\" escape character - but this does not
solve the problem (e.g., PopUpWindowTitle= Replace(PopUpWindowTitle, "'",
"\' "). The server still throws the Unterminated String Constant error.

What can I do about this? I need to include apostrophes in the JavaScript
function call string and VB.NET is ignoring JavaScript's Escape
character -yet honoring JavaScript's syntax rules.

Thanks in advance.
 
M

mikeb

Jeff said:
Apparently you saw right through my little ploy to post simpler code to the
newsgroup than what I was actually working with (and with the omission/typo
you correctly concluded). Your <soapbox> points are well taken...

I proceeded to go with your suggestions, but I still get the error. So, I
posted the complete section of code below.

Change this section of code:

Replace(CurrentEventName, "'", "'")

PopUpWindowTitle = CurrentEventName 'will do for now

to:

PopUpWindowTitle = Replace(CurrentEventName, "'", "'")

As your code stands now, you're throwing away the results of the
Replace() call.

Note that you'll have to something similar for each of your parameters
to PopUpWindow()
Additionally, on closer observation, the sequence that leads to the error
message appearing is as follows:
1. From the VS.NET IDE, I press F5 to run the project (with the ASPX page in
question set as the start page).
2. The browser window appear, and I see the top part of the ASPX page
rendered (e.g., the page header graphics show up).
3. The messagebox appears displaying the "Error: Unterminated string
constant" message.
4. At this point, only the top part of the page is rendered, and the message
box is displayed in the middle of the browser window. If I click on either
Yes or No (the only two buttons on the message box - prompting to debug or
not), the page does finish rendering in the browser. The page looks fine,
but the links are dead (presumably because the JavaScript function call part
of the link is invalid).

Here's the code (followed by runtime sample values):

For Each CalendarEntry In m_CalendarEntries
If CalendarEntry.EventDateTime = DateToGet Then

'Get the for the JS popup window ready
CurrentDate = CStr(CalendarEntry.EventDateTime)
CurrentEventDetails = CalendarEntry.LongDescription
CurrentEventContact = CalendarEntry.ContactName
CurrentEventContactEmail = CalendarEntry.ContactEMail
CurrentEventName = CalendarEntry.ShortDescription

'CurrentEventName = Replace(CurrentEventName, "'", "''")

'Replace(CurrentEventName, "'", "\x27")
Replace(CurrentEventName, "'", "'")

PopUpWindowTitle = CurrentEventName 'will do for now

PopupLink = "javascript:popUpWindow(" & Chr(34) & PopUpWindowTitle &
Chr(34) & ", " & Chr(34) & CurrentEventDetails & Chr(34) & ", " & Chr(34) &
CurrentEventContact & Chr(34) & ", " & Chr(34) & CurrentEventContactEmail &
Chr(34) & ", " & Chr(34) & CurrentDate & Chr(34) & ")"

strTemp += "<BR><A HREF='#' onClick='" & PopupLink & "'>" &
CurrentEventName & "</A><BR>"
End If
Next

Return strTemp
-------------------------
Sample runtime value of PopupLink:
"javascript:popUpWindow("Bob's Birthday Party", "Bob made it another year!",
"Bob", "(e-mail address removed)", "11/3/2003")"

Sample runtime value of strTemp:
"<BR><A HREF='#' onClick='javascript:popUpWindow("Bob's Birthday Party",
"Bob made it another year!", "Bob", "(e-mail address removed)", "11/3/2003")'>Bob's
Birthday Party</A><BR>"

The value "Bob's Birthday Party" comes from a database. If I remove the
apostrophe in the database, then the error does not occur.

Finally, This is obviously a function call; strTemp is eventually written by
the calling code to the .text property of a Label control.

Thanks for taking the time...

Jeff



to a
JavaScript function. The two lines of code below show what is relevant.

PopupLink = "javascript:popUpWindow(" & Chr(34) & PopUpWindowTitle &
Chr(34)
& ", " & Chr(34) & CurrentEventDetails & ")"
strTemp += "<BR><A HREF='#' onClick='" & PopupLink & "'>" & EventName &
"</A><BR>"

The problem I have is that when the string variables [PopUpWindowTitle]
or
[CurrentEventDetails] contain a string with an apostrophe, then the
server
throws an error "Unterminated String Constant". This error shows up

prior to
 
M

mikeb

Jeff said:
Thanks - you saved me a bunch of time.

That's big of you to get all offended and STILL take the time to write an
accurate and understandable response. It works great. I obviously wasn't
high enough on the HTML/Javascript learning code to see how your original
response was relevant. Thanks for the boost!

One thing to be careful of, is that with the posted fix you will run
into the same problem if the text you pull out of the database contains
a double-quote character. Admittedly, this will be rare (or
non-existent) compared with the apostrophe, but it might bite you at
some point.
JUST SAY THANKS YOU BIATCH.

Dim PopUpLink As String
Dim PopUpWindowTitle As String = "window's title"
Dim CurrentEventDetails As String = "currentevent'sdetails"
Dim strTemp As String
Dim eventName As String

PopUpLink = "javascript:popUpWindow('" & PopUpWindowTitle.Replace("'",
"\'") & "', '" & CurrentEventDetails.Replace("'", "\'") & "')"
strTemp += "<BR><A HREF=""#"" onClick=""" & PopUpLink & """>" &
eventName & "</A><BR>"
Response.Write(strTemp)

JUST BECAUSE YOU ARE NOT GOOD AT DEBUGGING JAVASCRIPT AND HTML DON'T GET
HUFFY AT ME.

THIS WAS EASY!

Thanks, but Response.Write is not relevant to the original problem. You
might want to read questions before posting a response, or at least
provide

an explanation of how your response is relevant to the specific question
as

asked (if it's not obvious how it relates).





response.write ("this is a double "" quote")

output = this is a double " quote





In a VB.NET code behind module, I build a string for a link that
points

to

a

JavaScript function. The two lines of code below show what is
relevant.

PopupLink = "javascript:popUpWindow(" & Chr(34) & PopUpWindowTitle &

Chr(34)

& ", " & Chr(34) & CurrentEventDetails & ")"
strTemp += "<BR><A HREF='#' onClick='" & PopupLink & "'>" &
EventName
&

"</A><BR>"

The problem I have is that when the string variables
[PopUpWindowTitle]

or

[CurrentEventDetails] contain a string with an apostrophe, then the

server

throws an error "Unterminated String Constant". This error shows up

prior

to

the page rendering in the browser (or as the page is being rendered
to
the

browser - I'm not sure which - but it's before the page shows up in
the

browser).

I tried including JavaScript's "\" escape character - but this does
not

solve the problem (e.g., PopUpWindowTitle= Replace(PopUpWindowTitle,

"'",

"\' "). The server still throws the Unterminated String Constant
error.

What can I do about this? I need to include apostrophes in the

JavaScript

function call string and VB.NET is ignoring JavaScript's Escape
character -yet honoring JavaScript's syntax rules.

Thanks in advance.
 
K

keyur shah

You are initiating char(34) where are u ending it in ur code...
surprising.... it wont work until u balance parenthesis, quotes..
blaaaah blaaaah... :)

Keyur Shah
Verizon Communications
732-423-0745
 
P

psb

just do a .replace("""","&quot;"). I am not 100% on this solution, although
I would try this first. one thing I forgot to write in my first post was
that all things would be easier if all javascript used single quotes and
all html used double quotes. that is the intended use i believe. very
rarely will you have to use single quotes in html. same goes with
javascript; rarely use double quotes inside javascript.

mikeb said:
Jeff said:
Thanks - you saved me a bunch of time.

That's big of you to get all offended and STILL take the time to write an
accurate and understandable response. It works great. I obviously wasn't
high enough on the HTML/Javascript learning code to see how your original
response was relevant. Thanks for the boost!

One thing to be careful of, is that with the posted fix you will run
into the same problem if the text you pull out of the database contains
a double-quote character. Admittedly, this will be rare (or
non-existent) compared with the apostrophe, but it might bite you at
some point.
JUST SAY THANKS YOU BIATCH.

Dim PopUpLink As String
Dim PopUpWindowTitle As String = "window's title"
Dim CurrentEventDetails As String = "currentevent'sdetails"
Dim strTemp As String
Dim eventName As String

PopUpLink = "javascript:popUpWindow('" & PopUpWindowTitle.Replace("'",
"\'") & "', '" & CurrentEventDetails.Replace("'", "\'") & "')"
strTemp += "<BR><A HREF=""#"" onClick=""" & PopUpLink & """>" &
eventName & "</A><BR>"
Response.Write(strTemp)

JUST BECAUSE YOU ARE NOT GOOD AT DEBUGGING JAVASCRIPT AND HTML DON'T GET
HUFFY AT ME.

THIS WAS EASY!


Thanks, but Response.Write is not relevant to the original problem. You
might want to read questions before posting a response, or at least

provide

an explanation of how your response is relevant to the specific question

as

asked (if it's not obvious how it relates).





response.write ("this is a double "" quote")

output = this is a double " quote





In a VB.NET code behind module, I build a string for a link that

points

to

a

JavaScript function. The two lines of code below show what is

relevant.

PopupLink = "javascript:popUpWindow(" & Chr(34) & PopUpWindowTitle &

Chr(34)

& ", " & Chr(34) & CurrentEventDetails & ")"
strTemp += "<BR><A HREF='#' onClick='" & PopupLink & "'>" &
EventName

&

"</A><BR>"

The problem I have is that when the string variables

[PopUpWindowTitle]

or

[CurrentEventDetails] contain a string with an apostrophe, then the

server

throws an error "Unterminated String Constant". This error shows up

prior

to

the page rendering in the browser (or as the page is being rendered
to

the

browser - I'm not sure which - but it's before the page shows up in

the

browser).

I tried including JavaScript's "\" escape character - but this does

not

solve the problem (e.g., PopUpWindowTitle= Replace(PopUpWindowTitle,

"'",

"\' "). The server still throws the Unterminated String Constant

error.

What can I do about this? I need to include apostrophes in the

JavaScript

function call string and VB.NET is ignoring JavaScript's Escape
character -yet honoring JavaScript's syntax rules.

Thanks in advance.
 
M

mikeb

psb said:
just do a .replace("""","&quot;"). I am not 100% on this solution, although
I would try this first. one thing I forgot to write in my first post was
that all things would be easier if all javascript used single quotes and
all html used double quotes. that is the intended use i believe. very
rarely will you have to use single quotes in html. same goes with
javascript; rarely use double quotes inside javascript.

However, strings that come out of a database should always be escaped
such that the data can't cause side effects when sent to the client
since those strings are usually entered by an end user. If the proper
escaping isn't done, you leave open the possibility of cross-site
scripting attacks, or that arbitrary data entered by the user simply
breaks the script or doesn't display properly.

So what I would do is write a utility function that did something like this:

Public Shared Function JScriptEncode(ByRef s As String) As String
s = Replace(s, "'", "\x27") ' JScript encode apostrophes
s = Replace(s, """", "\x22") ' JScript encode double-quotes
s = HttpUtility.HtmlEncode(s) ' encode chars special to HTML
Return s
End Function

Now, there are no characters in the string that will bother the browser,
and the string can contain double-quotes and/or single-quotes, and the
browser and the JavaScript processor will not be confused.

And it doesn't matter what type of quote you use to enclose the string.
 
J

Jeff S

Thanks to both psb and mikeb
I learned a lot more about Javascript and strings from this one thread than
I ever expected.
 

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,754
Messages
2,569,527
Members
45,000
Latest member
MurrayKeync

Latest Threads

Top