XML表达式中缺少}

时间:2010-05-19 13:02:03

标签: javascript jquery html

我有一个外部的javascript文件,我希望在包含时,在网页的末尾写一些HTML。

这样做虽然我在使用Missing } in XML expression的行上收到错误dropdownhtml

这是我的代码

var dropdownhtml = '<div id="dropdown"></div>';

$(document).ready(function(){

    //$(document).append(dropdownhtml);
    alert(dropdownhtml);
});

包含此文件的XHTML网页如下所示:

<script type="text/javascript" src="/web/resources/js/dropdownmenu.js"></script>

执行追加或警告会引发相同的错误,出现了什么问题?

4 个答案:

答案 0 :(得分:6)

我收到此错误是因为我在现有JavaScript中调用了外部JavaScript,因此最终得到了:

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

code
</script>

答案 1 :(得分:4)

修改您的更新会稍微改变一下这个问题。 : - )

引用的Javascript或包含它的脚本标记没有任何问题,问题必须在页面的其他位置。

旧答案

如果您在XML文档中包含Javascript,必须将其包装在CDATA部分中,否则您将遇到这样的麻烦,因为XML解析器既不知道也不关心你的Javascript引用,而是看似标记(你的<div>在字符串中。)

E.g:

<foo>
<bar><![CDATA[
    var dropdownhtml = '<div id="dropdown"></div>';

    $(document).ready(function(){

        //$(document).append(dropdownhtml);
        alert(dropdownhtml);
    });
]]></bar>
</foo>

当然,您需要确保]]>序列永远不会出现在您的脚本的字符串(或注释等)中,但这很容易做到(例如:"Be sure to interrupt the end sequence with a harmless backslash like this: ]]\>; that escape just resolves to > anyway."

答案 2 :(得分:1)

代码示例末尾肯定缺少);。尽管如此,不要到达可能缺失的地方。

答案 3 :(得分:1)

我的页面上有空脚本

<script src=""></script>

这导致了这样的错误