IE模板中的脚本标记错误

时间:2012-09-27 21:18:27

标签: javascript jquery backbone.js handlebars.js mustache

我的Handlebar / Moustache模板中有以下脚本标记:

<script type="text/javascript">
        $(function() {
            $(".enable-checkbox").click(function(e) {
                if ($(this).parent().attr("for") == "Webpage") {
                    $('#Webpage').attr("value", $(this).is(":checked")); // Set true/false.                    
                }                    
                if ($(this).parent().attr("for") == "Unsubscribe") {
                    $('#Unsubscribe').attr("value", $(this).is(":checked"));
                }
            });
        });
    </script>

这在Chrome和FF中完美运行。 但是,在IE上 - 我收到一个错误:

Error: Could not complete the operation due to error 80020101.

经过一番研究后,我发现上述错误是由于脚本标记我的模板造成的。如果我删除脚本标记,它可以在IE中使用。

有人可以建议一种方法让它在IE中运行吗?

P.S:将脚本标记的内容移动到加载此脚本的外部/主页面不是一种选择。

1 个答案:

答案 0 :(得分:0)

您可以直接在JavaScript中创建模板(无需脚本标记)

App.templates = {

    template1: "{{#stooges}}" +
               "<b>{{name}}</b>" +
               "{{/stooges}}",

    template2: "{{#shows}}" +
               "<b>{{title}}</b>" +
               "{{/shows}}"

};

请参考您的模板:

var output = Mustache.render(App.templates.template1, view);