#9569 closed defect (invalid)
Javascript comparison operator '&&' throws exception in templates/ticket.html
| Reported by: | Owned by: | ||
|---|---|---|---|
| Priority: | normal | Milestone: | |
| Component: | ticket system | Version: | 0.11.6 |
| Severity: | normal | Keywords: | |
| Cc: | Branch: | ||
| Release Notes: | |||
| API Changes: | |||
| Internal Changes: | |||
Description (last modified by )
Problem is always there. It should be easy to reproduce. In <project>/templates/ticket.html the following code:
<script language="Javascript" type="text/javascript">
function check_ticket(thisform)
{
with(thisform)
{
var diagnostics = field_diagnostic_info.value.split(" ");
if (field_diagnostic_info.value.length == 126 &&
diagnostics[0] == "Please")
{
alert("Please provide errors and diagnostic messages.");
field_diagnostic_info.focus();
return(false);
}
}
return(true);
}
</script>
will throw internal error on token '&&':
Trac detected an internal error: TemplateSyntaxError: not well-formed (invalid token): line 49, column 62 (/var/trac/projects/ianwap/templates/ticket.html, line 49) Python Traceback Most recent call last: File "/usr/lib/python2.3/site-packages/Trac-0.11.6-py2.3.egg/trac/web/main.py", line 450, in _dispatch_request File "/usr/lib/python2.3/site-packages/Trac-0.11.6-py2.3.egg/trac/web/main.py", line 227, in dispatch File "/usr/lib/python2.3/site-packages/Trac-0.11.6-py2.3.egg/trac/web/chrome.py", line 738, in render_template File "/usr/lib/python2.3/site-packages/Trac-0.11.6-py2.3.egg/trac/web/chrome.py", line 712, in load_template File "/usr/lib/python2.3/site-packages/Genshi-0.5.1-py2.3-linux-i686.egg/genshi/template/loader.py", line 227, in load File "/usr/lib/python2.3/site-packages/Genshi-0.5.1-py2.3-linux-i686.egg/genshi/template/loader.py", line 265, in _instantiate File "/usr/lib/python2.3/site-packages/Genshi-0.5.1-py2.3-linux-i686.egg/genshi/template/base.py", line 379, in __init__
Trac: 0.11.6 Python: 2.3.4 (#1, Feb 15 2005, 19:42:48) [GCC 3.4.3 20041212 (Red Hat 3.4.3-9.EL4)] setuptools: 0.6c9 SQLite: 3.3.6 pysqlite: 1.1.7 Genshi: 0.5.1 mod_python: < 3.2 jQuery: 1.2.6
Attachments (0)
Change History (3)
comment:1 by , 15 years ago
| Description: | modified (diff) |
|---|---|
| Resolution: | → invalid |
| Status: | new → closed |
comment:2 by , 15 years ago
I don't understand what you mean. Javascipt is defined in <head> section of ticket.html and works fine when loaded directly from the browser. That's how Javascripts work.
Upon using your suggestion, I get no Trac internal errors, however, the & and CDATA remain unchanged to the output Javascript, which doesn't work. Have you tried it?
comment:3 by , 15 years ago
Yes, I have. You should use either & or the CDATA section, but not both. The CDATA is more readable.



That's because your code is invalid (when included in an HTML file). You have to either escape the
&characters by substituting with&or enclose the code in aCDATAsection.