Problem with string literal argument conversion in Javascript




JavaScript Engine
14 years ago
14 years ago


(Reporter: Cesar Negrete, Unassigned)



Firefox Tracking Flags

(Not tracked)





14 years ago
User-Agent:       Mozilla/5.0 (X11; U; Linux i686; rv:1.7.3) Gecko/20041001 Firefox/0.10.1
Build Identifier: Mozilla/5.0 (X11; U; Linux i686; rv:1.7.3) Gecko/20041001 Firefox/0.10.1

The page I have this problem is a bank one, so you'd need a Mexican account to
check it out, so I'll explain the problem instead.

Using this simple line could help understand what's happening here.

<a href="javascript:alert('This should work'+'%0A'+'showing two lines in an
alert');">Click here to test</a>

What I would expect here is that the javascript engine parsed this line and send
an alert with two lines: "This should work" and "showing two lines in an alert".
 But instead it just sends an error to the JS console with the following

Error: unterminated string literal
Source File: javascript:alert('This should work'+'%0A'+'showing two lines in an
Line: 1, Column: 25
Source Code:
alert('This should work'+'

Yes, it "reads" the line correctly, but to execute it it parses the %0A (a
carriage return) and thinks the line is incomplete.

The bank page uses this as a submit "enter" to send information via a POST using
a link (which calls a function and ultimately evals the '%0A' to "send" the POST.

Here is some code for this page:

This is the link:


And the code for "js_envia" is:

  function js_envia (tipo, activo,clave,liga,ruta)
    pHeader.cgimenusRuta = ruta;   
document.FrmOpcion.activo.value=activo;    document.FrmOpcion.tipo.value=tipo; 
  document.FrmOpcion.clave.value=clave;    document.FrmOpcion.submit();    if
(liga != '') eval(liga);   }
   var pHeader=null;    pHeader= parent.GetPointerHd();

The important part is: if (liga != '') eval(liga);  which evaluates the %0A to
an enter and submits the information.

Now, I don't know if this is the way Javascript should work, or if it's wrong,
but this is the only reason I have to use Microsoft Explorer :(

BTW, I've emailed the bank people and.. of course... they never answered.

Reproducible: Always
Steps to Reproduce:
1. Go to
2. Click on the link

Actual Results:  
Nothing, and in the JS console appears an error about an unterminated string literal

Expected Results:  
Display an alert with two lines.

This has happened in Mozilla since 1.0, until 1.7.3, and Firefox 1.0PR
actually, this is working as intended... %0A in a url is a linebreak. string
literals can not contain linebreaks.

see also bug 249898 comment 1.
Last Resolved: 14 years ago
Resolution: --- → INVALID
It may be worth filing an evangelism bug on the bank (which bank?).
You need to log in before you can comment on or make changes to this bug.