FBML和HTMLParser错误

时间:2009-10-29 12:30:55

标签: facebook fbml zope zpt serverfbml

以下代码:

<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:fb="http://www.facebook.com/2008/fbml"
      xml:lang="en" lang="en">
<head>
    <title>FB Test</title>  
</head>

<body>
    <a href="#" onclick="FB.Connect.inviteConnectUsers();">Test</a>
    <fb:serverfbml style="width: 350px;">  
        <script type="text/fbml">
            <fb:connect-form action="http://127.0.0.1/post_invite">     
            </fb:connect-form>
        </script>
    </fb:serverfbml>
</body>
</html>

导致以下错误:

   - Warning: Compilation failed
   - Warning: <class 'zope.tal.htmltalparser.NestingError'>: Open tags <html>, <body>, <fb:serverfbml>, <script> do not match close tag </fb:connect-form>, at line 16, column 4
PTRuntimeError: ['Compilation failed', u"<class 'zope.tal.htmltalparser.NestingError'>: Open tags <html>, <body>, <fb:serverfbml>, <script> do not match close tag </fb:connect-form>, at line 16, column 4"]

然而这个结构似乎对我有用......

2 个答案:

答案 0 :(得分:2)

您不能将标记放在<script>标记内,并且严格的ZPT解析器会抱怨它。你必须以某种方式逃避内容,例如tal:content =“structure string:”construct:

<script type="text/fbml" tal:content="structure string:
    &lt;fb:connect-form action=&quot;http://127.0.0.1/post_invite&quot;&lt;         
    &gt;/fb:connect-form&lt;
"></script>

答案 1 :(得分:0)

根据我的知识,脚本标记不得包含xml。

您可以将内容包含在xml注释中,看看是否有效。