【问题标题】:How to correctly include javascript code in chameleon/zpt template (pyramid)?如何在 chameleon/zpt 模板(金字塔)中正确包含 javascript 代码?
【发布时间】:2011-07-07 18:49:13
【问题描述】:

我正在尝试在 script> /script> 标签之间嵌入一些代码,但是金字塔不喜欢它并给了我

ExpatError: not well-formed (invalid token)

可能是因为我的代码中有 &&。我尝试改用&,但它没有在浏览器中得到解释。

当我尝试将它放入 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>

【问题讨论】:

    标签: javascript python pyramid template-tal


    【解决方案1】:

    我认为你应该放 &&(即 HTML 实体代码的两倍)。

    【讨论】:

      【解决方案2】:

      这应该可行:

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

      【讨论】:

      • 如果被注释掉,则不会执行。
      【解决方案3】:

      您是否尝试将type 属性添加到您的脚本标签?:

      <script type="text/javascript">
      ...
      </script>
      

      【讨论】:

      • 你试过转义&符号吗? alert(true \&amp;\&amp; false); 我在使用大括号和 Smarty 时遇到过这样的问题
      • 应该有某种开关来关闭验证,但它不能开箱即用。
      • 这很烦人。 =( 以 Smarty 为例,{ 是模板中的保留字符,因此页面样式标签 body {font-size:12px;} 完全是非法的,必须外化...~
      • 而且非常令人反感,尤其是在刚开始一个项目时:/
      【解决方案4】:

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

      我在想是否可以将 chameleon 解析的文档类型更改为 html,但这样就不可能包含 tal 和 metal 命名空间。

      因此这是预期行为

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-08-27
        • 2013-04-02
        • 2015-04-18
        • 2016-04-10
        • 2023-03-03
        • 2019-08-06
        • 2023-04-03
        • 2013-11-09
        相关资源
        最近更新 更多