如何在chameleon/zpt模板中正确包含JavaScript代码(使用pyramid)?

0 投票
4 回答
1355 浏览
提问于 2025-04-16 12:53

我想在<script>和</script>标签之间嵌入一些代码,但pyramid不喜欢这样,给了我一个错误提示:

ExpatError: 格式不正确(无效的符号)

可能是因为我的代码里有&&。我试着用&amp;来代替,但在浏览器里却没有被正确解析。

当我尝试把代码放在CDATA块里时,也出现了同样的问题。

把代码移到一个单独的js文件里就能正常工作。我现在想把它放在同一个文件里,以便快速修改。

那么,我该怎么做呢?

编辑:

即使是像这样的简单模板,我也会遇到同样的错误:

<html
    xmlns:tal="http://xml.zope.org/namespaces/tal"
    xmlns:metal="http://xml.zope.org/namespaces/metal">
    <head>
    </head>
    <body>
        <span onclick="alert(true && false);">test</span>
    </body>
 </html>

4 个回答

1

这个应该可以用:

<script type="text/javascript">
    //<![CDATA[
        // my javascript
    //]]>
</script>
1

我觉得你应该用&&(也就是两个HTML实体代码)来表示。

0

看起来这是个xhtml的问题,因为w3c验证器也报告了同样的错误。

我在想是否有个开关可以让变色龙把文档类型解析成html,但这样的话就不能包含tal和metal这两个命名空间了。

所以这是正常的表现

撰写回答