Closed
Bug 265885
Opened 20 years ago
Closed 20 years ago
Problem with string literal argument conversion in Javascript
Categories
(Core :: JavaScript Engine, defect)
Core
JavaScript Engine
Tracking
()
RESOLVED
INVALID
People
(Reporter: lester, Unassigned)
References
()
Details
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
information:
Error: unterminated string literal
Source File: javascript:alert('This should work'+'%0A'+'showing two lines in an
alert');
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:
javascript:js_envia('T','1','A01B03','%0A','Consultas%C2%BBMovimientos');
And the code for "js_envia" is:
function js_envia (tipo, activo,clave,liga,ruta)
{
pHeader.cgimenusRuta = ruta;
document.FrmOpcion.action=pathcgis+'cgimenus.cgi';
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 http://lesterchakyn.com/~lester/moz_test.html
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
Comment 1•20 years ago
|
||
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.
Status: UNCONFIRMED → RESOLVED
Closed: 20 years ago
Resolution: --- → INVALID
![]() |
||
Comment 2•20 years ago
|
||
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.
Description
•