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. 12 9533
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
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.
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
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.
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.
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. > >
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
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. > >
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!
just do a .replace("""","""). 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. >> >> > >
psb wrote: just do a .replace("""","""). 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
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("""","""). 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 This thread has been closed and replies have been disabled. Please start a new discussion. Similar topics
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...
|
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...
|
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 %%...
|
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....
|
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"
|
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.
|
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....
|
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...
|
by: Rina0 |
last post by:
Cybersecurity engineering is a specialized field that focuses on the design, development, and implementation of systems, processes, and technologies that protect against cyber threats and...
|
by: isladogs |
last post by:
The next Access Europe meeting will be on Wednesday 2 August 2023 starting at 18:00 UK time (6PM UTC+1) and finishing at about 19:15 (7.15PM)
The start time is equivalent to 19:00 (7PM) in Central...
|
by: erikbower65 |
last post by:
Using CodiumAI's pr-agent is simple and powerful. Follow these steps:
1. Install CodiumAI CLI: Ensure Node.js is installed, then run 'npm install -g codiumai' in the terminal.
2. Connect to...
|
by: erikbower65 |
last post by:
Here's a concise step-by-step guide for manually installing IntelliJ IDEA:
1. Download: Visit the official JetBrains website and download the IntelliJ IDEA Community or Ultimate edition based on...
|
by: DJRhino1175 |
last post by:
When I run this code I get an error, its Run-time error# 424 Object required...This is my first attempt at doing something like this. I test the entire code and it worked until I added this -
If...
|
by: DJRhino |
last post by:
Private Sub CboDrawingID_BeforeUpdate(Cancel As Integer)
If = 310029923 Or 310030138 Or 310030152 Or 310030346 Or 310030348 Or _
310030356 Or 310030359 Or 310030362 Or...
|
by: lllomh |
last post by:
How does React native implement an English player?
|
by: Mushico |
last post by:
How to calculate date of retirement from date of birth
|
by: DJRhino |
last post by:
Was curious if anyone else was having this same issue or not....
I was just Up/Down graded to windows 11 and now my access combo boxes are not acting right. With win 10 I could start typing...
| |