473,467 Members | 1,554 Online
Bytes | Software Development & Data Engineering Community
Create Post

Home Posts Topics Members FAQ

Problem With String Containing JavaScript Escape Character

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.
Nov 17 '05 #1
12 9605
Jeff S wrote:
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.
--
mikeb

Nov 17 '05 #2
psb
response.write ("this is a double "" quote")

output = this is a double " quote


"Jeff S" <Je***@asdf.net> wrote in message
news:Of**************@tk2msftngp13.phx.gbl...
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.

Nov 17 '05 #3
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", "Bo*@asdf.com", "11/3/2003")"

Sample runtime value of strTemp:
"<BR><A HREF='#' onClick='javascript:PopUpWindow("Bob's Birthday Party",
"Bob made it another year!", "Bob", "Bo*@asdf.com", "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" <ma************@mailnull.com> wrote in message
news:e1******************@tk2msftngp13.phx.gbl...
Jeff S wrote:
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.
--
mikeb

Nov 17 '05 #4
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" <pb******@msn.com> wrote in message
news:OA****************@TK2MSFTNGP11.phx.gbl...
response.write ("this is a double "" quote")

output = this is a double " quote


"Jeff S" <Je***@asdf.net> wrote in message
news:Of**************@tk2msftngp13.phx.gbl...
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.


Nov 17 '05 #5
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" <Je***@asdf.net> wrote in message
news:%2******************@TK2MSFTNGP10.phx.gbl...
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" <pb******@msn.com> wrote in message
news:OA****************@TK2MSFTNGP11.phx.gbl...
response.write ("this is a double "" quote")

output = this is a double " quote


"Jeff S" <Je***@asdf.net> wrote in message
news:Of**************@tk2msftngp13.phx.gbl...
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.



Nov 17 '05 #6
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" <pb******@msn.com> wrote in message
news:%2****************@tk2msftngp13.phx.gbl...
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" <Je***@asdf.net> wrote in message
news:%2******************@TK2MSFTNGP10.phx.gbl...
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" <pb******@msn.com> wrote in message
news:OA****************@TK2MSFTNGP11.phx.gbl...
response.write ("this is a double "" quote")

output = this is a double " quote


"Jeff S" <Je***@asdf.net> wrote in message
news:Of**************@tk2msftngp13.phx.gbl...
> 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.
>
>



Nov 17 '05 #7
Jeff S wrote:
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", "Bo*@asdf.com", "11/3/2003")"

Sample runtime value of strTemp:
"<BR><A HREF='#' onClick='javascript:PopUpWindow("Bob's Birthday Party",
"Bob made it another year!", "Bob", "Bo*@asdf.com", "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" <ma************@mailnull.com> wrote in message
news:e1******************@tk2msftngp13.phx.gbl...
Jeff S wrote:
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.
--
mikeb


--
mikeb

Nov 17 '05 #8
Jeff S wrote:
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.

"psb" <pb******@msn.com> wrote in message
news:%2****************@tk2msftngp13.phx.gbl...
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" <Je***@asdf.net> wrote in message
news:%2******************@TK2MSFTNGP10.phx.gbl.. .
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" <pb******@msn.com> wrote in message
news:OA****************@TK2MSFTNGP11.phx.gbl. ..

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

output = this is a double " quote


"Jeff S" <Je***@asdf.net> wrote in message
news:Of**************@tk2msftngp13.phx.gbl.. .

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



Nov 17 '05 #9
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

*** Sent via Developersdex http://www.developersdex.com ***
Don't just participate in USENET...get rewarded for it!
Nov 17 '05 #10
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" <ma************@mailnull.com> wrote in message
news:ul**************@TK2MSFTNGP12.phx.gbl...
Jeff S wrote:
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.

"psb" <pb******@msn.com> wrote in message
news:%2****************@tk2msftngp13.phx.gbl...
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" <Je***@asdf.net> wrote in message
news:%2******************@TK2MSFTNGP10.phx.gbl.. .

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" <pb******@msn.com> wrote in message
news:OA****************@TK2MSFTNGP11.phx.gbl. ..

>response.write ("this is a double "" quote")
>
>output = this is a double " quote
>
>
>
>
>"Jeff S" <Je***@asdf.net> wrote in message
>news:Of**************@tk2msftngp13.phx.gbl.. .
>
>>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.
>>
>>
>
>


Nov 17 '05 #11
psb wrote:
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.

"mikeb" <ma************@mailnull.com> wrote in message
news:ul**************@TK2MSFTNGP12.phx.gbl...
Jeff S wrote:

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.



"psb" <pb******@msn.com> wrote in message
news:%2****************@tk2msftngp13.phx.gbl. ..
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!


--
mikeb

Nov 17 '05 #12
Thanks to both psb and mikeb
I learned a lot more about Javascript and strings from this one thread than
I ever expected.


"mikeb" <ma************@mailnull.com> wrote in message
news:uE**************@TK2MSFTNGP10.phx.gbl...
psb wrote:
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.

"mikeb" <ma************@mailnull.com> wrote in message
news:ul**************@TK2MSFTNGP12.phx.gbl...
Jeff S wrote:
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'thigh 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.


"psb" <pb******@msn.com> wrote in message
news:%2****************@tk2msftngp13.phx.gbl. ..
>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!
>


--
mikeb

Nov 17 '05 #13

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

4
by: Alden Streeter | last post by:
Here is the HTML that is being output by my asp page: <a href='Files/category/computers/bigimages/computers-sub-monitors.jpg' target='_blank' onMouseOver="window.status='Click for a larger image...
4
by: Travis Pupkin | last post by:
Hi, I'm putting together a site to allow someone to add content to a DB through a text area form, and then display it on the web. Pretty basic. The problem I'm having is that they need to add...
7
by: teachtiro | last post by:
Hi, 'C' says \ is the escape character to be used when characters are to be interpreted in an uncommon sense, e.g. \t usage in printf(), but for printing % through printf(), i have read that %%...
3
by: newsgroupie | last post by:
Hi Newsgroupies, Please could someone tell me the escape character for " (double quote) in a string.Format(...) method as \x22 doesn't work as it comes out as \" in the result. i.e....
7
by: Steve | last post by:
string str ="\"C:\Program Files\Internet Explorer\iexplore.exe\" -nohome" How can I remove charcter to string str = ="C:\Program Files\Internet Explorer\iexplore.exe -nohome"
3
by: Giganews | last post by:
I'm facing a crazy problem: <% spc = "<abcd" response.write spc %> will not work, spc is empty. When I replace <abcd with ab<cd, then spc contains only ab.
15
by: pkaeowic | last post by:
I am having a problem with the "escape" character \e. This code is in my Windows form KeyPress event. The compiler gives me "unrecognized escape sequence" even though this is documented in MSDN....
2
by: indona | last post by:
hi.. i am trying to pass the file path of a text file, which i need to read, to a file object so as to read all lines of the text file. and i am selecting the file through a filedialog and i...
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
0
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
0
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers,...
0
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each...
0
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing,...
0
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new...
0
by: conductexam | last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and...
0
by: adsilva | last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
0
by: 6302768590 | last post by:
Hai team i want code for transfer the data from one system to another through IP address by using C# our system has to for every 5mins then we have to update the data what the data is updated ...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.