Unterminated string -- within a querystring...?

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • KathyB

    #1

    Unterminated string -- within a querystring...?

    Hi, this is the first lines of a function. Although it runs, it still
    throws an "Unterminat ed string constant" error in the browser. It is
    all in one line, just wouldn't fit here.

    The error appears to occur right after type='+typeIn+' &id <----before
    the =

    Any clues appreciated! Thanks, Kathy


    function Anomaly(typeIn, idIn,textIn)
    {
    newWindow = window.open(('A nomaly.aspx?typ e='+typeIn+'&id ='+idIn+'&text= '+textIn),
    'Anomaly', 'width=650,heig ht=700,left=100 ,toolbar=no,men ubar=no,resizab le=yes');
  • Jeff North

    #2
    Re: Unterminated string -- within a querystring...?

    On 8 Oct 2003 21:32:48 -0700, in comp.lang.javas cript
    KathyBurke40@at tbi.com (KathyB) wrote:
    [color=blue]
    >| Hi, this is the first lines of a function. Although it runs, it still
    >| throws an "Unterminat ed string constant" error in the browser. It is
    >| all in one line, just wouldn't fit here.
    >|
    >| The error appears to occur right after type='+typeIn+' &id <----before
    >| the =
    >|
    >| Any clues appreciated! Thanks, Kathy
    >|
    >|
    >| function Anomaly(typeIn, idIn,textIn)
    >| {
    >| newWindow = window.open(('A nomaly.aspx?typ e='+typeIn+'&id ='+idIn+'&text= '+textIn),
    >| 'Anomaly', 'width=650,heig ht=700,left=100 ,toolbar=no,men ubar=no,resizab le=yes');[/color]

    You might try breaking the code up-
    --------------
    function Anomaly(typeIn, idIn,textIn)
    {
    var URL = "type=" + typeIn + "&id=" + idIn + "&text=" + textIn;

    alert ( URL );

    newWindow = window.open("An omaly.aspx?" + URL, "Anomaly",
    "width=650,heig ht=700,left=100 ,toolbar=no,men ubar=no,resizab le=yes");
    }
    ---------------
    Your inputs may have apostrophes which will upset the scheme of
    things.
    ---------------------------------------------------------------
    jnorth@yourpant sbigpond.net.au : Remove your pants to reply
    ---------------------------------------------------------------

    Comment

    • Kathy Burke

      #3
      Re: Unterminated string -- within a querystring...?

      Thanks. Question, my input will sometimes definitely have apostrophes!
      How do I handle that?

      Thanks.

      Kathy

      *** Sent via Developersdex http://www.developersdex.com ***
      Don't just participate in USENET...get rewarded for it!

      Comment

      • Lasse Reichstein Nielsen

        #4
        Re: Unterminated string -- within a querystring...?

        Kathy Burke <kathyburke40@a ttbi.com> writes:
        [color=blue]
        > Question, my input will sometimes definitely have apostrophes! How
        > do I handle that?[/color]

        It shouldn't make a difference.

        This is perfectly legal:

        var x = 'foo\'bar';
        var y = "baz'foo";
        var z = 'abc'+x+y+'def' ;

        The value of z is the string containing
        abcfoo'barbaz'f oodef

        Your code looked perfectly legal to me, if used in an HTML setting or
        an external Javascript file. If you embed it in XHTML, you must turn
        the ampersands into &amp; entities.

        My guess would be that you inadvertedly inserted a newline without
        noticing. That would give the error message that you got.
        Otherwise, I would need to see the function in context in order to
        say what is wrong. The code you posted is fine in itself.

        /L
        --
        Lasse Reichstein Nielsen - lrn@hotpop.com
        Art D'HTML: <URL:http://www.infimum.dk/HTML/randomArtSplit. html>
        'Faith without judgement merely degrades the spirit divine.'

        Comment

        • Kathy Burke

          #5
          Re: Unterminated string -- within a querystring...?

          Lasse, thanks again for your help. I've including my html output in
          hopes that you may see something I don't. I also included an apostrophe
          in one of my text items...that, too, gives me an error that jscript is
          expecing and } or something. I'm using strictly IE 5.5/6. If you could
          look at this, I would be ever so grateful! Thanks.

          Kathy

          <html>
          <head>
          <META http-equiv="Content-Type" content="text/html; charset=UTF-16">
          <style type="text/css">
          bgcolor="#FFFFF F"
          h1 {font-family: Gill Sans MT;color: blue;font-size:20pt
          font-weight:bold;mar gin-top:0;margin-bottom:0}
          h2 {font-family: Gill Sans MT;color: red;font-size:18pt
          font-weight:bold;mar gin-top:0;margin-bottom:0}
          h3 {font-family: Gill Sans MT;color:
          white;font-size:14pt;font-weight:bold;mar gin-top:0;margin-bottom:0}
          body {font-family: Gill Sans MT;color: black;font-size:12pt}
          p {font-family: Gill Sans MT;color: black;font-size:12pt}
          h4 {font-family: Gill Sans MT;color:
          white;font-size:12pt;font-weight:bold;tex t-transform:
          uppercase;margi n-top:0;margin-bottom:0}
          h5 {font-family: Gill Sans MT;color:
          white;font-size:12pt;font-weight:bold;mar gin-top:0;margin-bottom:0}
          h6 {font-family: Gill Sans MT;color:
          black;font-size:12pt;font-weight:bold;mar gin-top:0;margin-bottom:0}
          </style>
          <title>Work Instruction</title><script language="Javas cript">
          function Anomaly(typeIn, idIn,textIn)
          {
          newWindow = window.open(('A nomaly.aspx?typ e=' + typeIn + '&idNo=' +
          idIn + '&text=' + textIn), 'Anomaly',
          'width=650,heig ht=700,left=100 ,toolbar=no,men ubar=no,resizab le=yes');
          }
          function ValidateSave(fo rmRef,fieldName ,min,max) {
          var formField = formRef.element s[fieldName];
          if (!/^\d+(\.\d+)?$/.test(formField .value)) {
          alert('Invalid entry...please try again!');
          formField.focus ();
          formField.selec t();
          return false;
          }
          if ((formField.val ue < min) || (formField.valu e > max)) {
          alert("The entry must be between " +min+ " and " +max+ ".");
          formField.focus ();
          formField.selec t();
          return false;
          }
          else
          {
          varScroll = document.body.s crollTop;
          document.cookie ="position="+va rScroll;
          return confirm("You are about to enter: " +formField.valu e+ " --
          click OK to proceed.");
          }
          }
          function ConfirmSave(for mRef,fieldName)
          {
          var formField = formRef.element s[fieldName];

          if ((formField.val ue.length==0) || (formField.valu e==null))
          {
          alert("You are trying to save a blank entry.");
          formField.focus ();
          formField.selec t();
          return false;
          }
          else {
          varScroll = document.body.s crollTop;
          document.cookie ="position="+va rScroll;
          return confirm("You are about to enter: " +formField.valu e+ " --
          click OK to proceed.");
          }
          }
          function CheckInput()
          {
          var cnAll = document.all;
          for (var i=0;i<cnAll.len gth;i++)

          if(cnAll(i).typ e=='text')
          {
          alert("You must first complete and SAVE all user inputs!");
          cnAll(i).focus( );
          return false;
          }
          document.cookie ="position=0 ";
          return true;
          }
          function get_cookie(Name ) {
          var search = Name + "="
          var returnvalue = "";
          if (document.cooki e.length > 0) {
          offset = document.cookie .indexOf(search )
          // if cookie exists
          if (offset != -1) {
          offset += search.length
          // set index of beginning of value
          end = document.cookie .indexOf(";", offset);
          // set index of end of cookie value
          if (end == -1) end = document.cookie .length;
          returnvalue=une scape(document. cookie.substrin g(offset, end))
          }
          }
          return returnvalue;
          }
          function myScroll()
          {
          if (get_cookie("po sition")!="") {
          varScroll = "";
          varScroll = get_cookie("pos ition");
          window.scrollTo (0, varScroll);
          }
          }
          </script></head>
          <body onload="myScrol l()">
          <h1></h1>
          <table border="1" width="100%" cellpadding="4" >
          <tr bgcolor="red" valign="middle" >
          <th colspan="3" align="left">
          <h3>SAFETY</h3>
          </th>
          </tr>
          <tr>
          <td align="center" valign="middle" width="5%"><inp ut style="CURSOR:
          POINTER" type="button" value="Anomaly"
          onclick="Javasc ript:Anomaly('S afety','1','Sta tic prevention straps and
          lab coats must be worn at all
          times.')"></td>
          <td valign="top">
          <table border="0">
          <tr>
          <td align="left" valign="top">1.  
          </td>
          <td valign="top">
          <p>Static prevention straps and lab coats must be worn at all
          times.</p>
          </td>
          </tr>
          </table>
          </td>
          </tr>
          </table><br><tabl e border="1" width="100%" cellpadding="4" >
          <tr bgcolor="orange " valign="middle" >
          <th colspan="3" align="left">
          <h3>TOOLS AND MATERIALS</h3>
          </th>
          </tr>
          <tr>
          <td colspan="2"><b> Tool/Material</b></td>
          <td align="center"> <b>Jabil Part No.</b></td>
          </tr>
          </table><br><tabl e border="1" width="100%" cellpadding="4" >
          <tr bgcolor="navy" valign="middle" >
          <th align="left" colspan="4">
          <h3>PROCESS STEPS</h3>
          </th>
          <tr onMouseOver="th is.bgColor = '#99FFFF'" onMouseOut="thi s.bgColor =
          '#FFFFFF'">
          <td align="center" valign="middle" ><input style="CURSOR: POINTER"
          type="button" value="Anomaly"
          onclick="Javasc ript:Anomaly('S tep','1','Scan all labels from the sheet
          before installing on the boards. The total quantity scanned should equal
          the total quantity of the work order.')"></td>
          <td valign="top">
          <table width="100%" border="0" cellpadding="0" >
          <tr>
          <td valign="top" width="7">
          <table border="0" cellpadding="0" >
          <tr>
          <td valign="top" width="7">  </td>
          <td valign="top">1.  </td>
          </tr>
          </table>
          </td>
          <td>
          <p>Scan all labels from the sheet before installing on the boards. The
          total quantity scanned should equal the total quantity of the work
          order.</p>
          </td>
          </tr>
          </table>
          </td>
          </tr>
          <tr onMouseOver="th is.bgColor = '#99FFFF'" onMouseOut="thi s.bgColor =
          '#FFFFFF'">
          <td align="center" valign="middle" ><input style="CURSOR: POINTER"
          type="button" value="Anomaly"
          onclick="Javasc ript:Anomaly('S tep','2','Insta ll P/N label and S/N label
          as shown in visual aid TEST 10-ME40-865-7446-03-LB01
          10-ME40-865-7446-03-LB01.')"></td>
          <td valign="top">
          <table width="100%" border="0" cellpadding="0" >
          <tr>
          <td valign="top" width="7">
          <table border="0" cellpadding="0" >
          <tr>
          <td valign="top" width="7">  </td>
          <td valign="top">2.  </td>
          </tr>
          </table>
          </td>
          <td>
          <p>Install P/N label and S/N label as shown in visual aid TEST <a
          target="_blank"
          href="\\BOSCIM0 1\CIMBridge\!PR OCESS_ENGINEERI NG\LTX\865-333-03-RAC\LB01.
          mdf">10-ME40-865-7446-03-LB01</a><a target="_blank"
          href="\\BOSCIM0 1\CIMBridge\!PR OCESS_ENGINEERI NG\LTX\865-7446-03RBC\LB01.
          mdf">10-ME40-865-7446-03-LB01</a>.</p>
          </td>
          </tr>
          </table>
          </td>
          </tr>
          <tr onMouseOver="th is.bgColor = '#99FFFF'" onMouseOut="thi s.bgColor =
          '#FFFFFF'">
          <td align="center" valign="middle" ><input style="CURSOR: POINTER"
          type="button" value="Anomaly"
          onclick="Javasc ript:Anomaly('S tep','3','Kathy 's Test -- Load the boards
          into the loader or into the EKRA E5 Screen Printer manually, as
          required.')"></td>
          <td valign="top">
          <table width="100%" border="0" cellpadding="0" >
          <tr>
          <td valign="top" width="7">
          <table border="0" cellpadding="0" >
          <tr>
          <td valign="top" width="7">  </td>
          <td valign="top">3.  </td>
          </tr>
          </table>
          </td>
          <td>
          <p>Kathy's Test -- Load the boards into the loader or into the EKRA E5
          Screen Printer manually, as required.</p>
          </td>
          </tr>
          </table>
          </td>
          </tr>
          <tr onMouseOver="th is.bgColor = '#99FFFF'" onMouseOut="thi s.bgColor =
          '#FFFFFF'">
          <td align="center" valign="middle" ><input style="CURSOR: POINTER"
          type="button" value="Anomaly"
          onclick="Javasc ript:Anomaly('S tep','4','Opera te the EKRA E5 Screen
          Printer, see LINK if needed.')"></td>
          <td valign="top">
          <table width="100%" border="0" cellpadding="0" >
          <tr>
          <td valign="top" width="7">
          <table border="0" cellpadding="0" >
          <tr>
          <td valign="top" width="7">  </td>
          <td valign="top">4.  </td>
          </tr>
          </table>
          </td>
          <td>
          <p>Operate the EKRA E5 Screen Printer, see LINK if needed.</p>
          </td>
          </tr>
          </table>
          </td>
          </tr>
          </tr>
          <form name="finish" action="HiddenF inish.aspx?fini sh=yes" method="post"
          onsubmit="retur n CheckInput(this );">
          <tr bgcolor="red" valign="middle" >
          <td align="center" valign="middle" ><input style="CURSOR: POINTER"
          type="submit" name="finish" value="FINISH"> </td>
          <td align="left">
          <font color="white">< b>Click the FINISH button when work instruction is
          complete.</b></font>
          </td>
          </tr>
          </form>
          </table>
          </body>
          </html>


          *** Sent via Developersdex http://www.developersdex.com ***
          Don't just participate in USENET...get rewarded for it!

          Comment

          • Lasse Reichstein Nielsen

            #6
            Re: Unterminated string -- within a querystring...?

            Kathy Burke <kathyburke40@a ttbi.com> writes:
            [color=blue]
            > I've including my html output in hopes that you may see something I
            > don't. I also included an apostrophe in one of my text items...that,
            > too, gives me an error that jscript is expecing and } or something.
            > I'm using strictly IE 5.5/6. If you could look at this, I would be
            > ever so grateful![/color]

            Ok, I threw this at IE 6. The error report says unterminated string
            constant on line 46. That is this line:
            [color=blue]
            > return confirm("You are about to enter: " +formField.valu e+ " --
            > click OK to proceed.");[/color]

            Or, more accuratly, these *two* lines.

            Maybe your news client have broken the line (which is why you
            shouldn't post code with lines longer than about 72 characters, some
            newsreaders, including yours, will mangle the code by breaking
            lines.).

            IE goes on to warn about unterminated string constants on lines:
            63, 117, 149, 173, and 221

            It also says: Expected ")" on line 198.

            Then it starts running and gets "Object expected" on line 107.

            I fixed the unterminated string constants by removing the newlines.

            The Expected ")" error ended up at line 195, which, sadly, makes no
            sense. Line 195 is "</tr>".

            Ah. The bug is a few lines further down, at:

            onclick="Javasc ript:Anomaly('S tep','3','Kathy 's Test -- Load the boards into the loader or into the EKRA E5 Screen Printer manually, as required.')"></td>

            The ' in Kathy's ends the string, and must be escaped:

            onclick="Javasc ript:Anomaly('S tep','3','Kathy \'s Test -- Load the boards into the loader or into the EKRA E5 Screen Printer manually, as required.')"></td>

            There is no problem having 's in string literals, but you must either
            escape them or quote the string literals with "'s instead. In this
            case, those would also need to be quoted, since the attribute is
            wrapped in double quotes.

            /L
            --
            Lasse Reichstein Nielsen - lrn@hotpop.com
            Art D'HTML: <URL:http://www.infimum.dk/HTML/randomArtSplit. html>
            'Faith without judgement merely degrades the spirit divine.'

            Comment

            Working...