编译的JST中的IE8意外标识符错误

时间:2014-10-07 15:27:46

标签: javascript internet-explorer-8 underscore.js-templating

我使用Grunt JST插件编译了许多模板。我刚刚发现这个编译好的字符串导致了一个"意外的标识符" IE8中的错误,我还没弄清楚原因。

this["JST"]["/tpl/general/pagination.tpl.html"] = function(obj) {obj || (obj = {});var __t, __p = '', __e = _.escape, __j = Array.prototype.join;function print() { __p += __j.call(arguments, '') }with (obj) {
var page = page || 1,
prevPage = 1,
nextPage = 1,
limit = limit || 12,
total = total || limit,
pages = Math.ceil(total/limit),
attributes = attributes || [];

page = parseInt(page);

(page > 1)? prevPage = page - 1: false;
(page < pages)? nextPage = page + 1: false;;__p += '\r\n\r\n'; if(total > limit){ ;__p += '\r\n\t<div class="pagination" '; for(var i = 0; i < attributes.length; i += 1){ print("data-"+attributes[i].name+"='"+attributes[i].value+"' ");} ;__p += '>\r\n\t  <ul>\r\n\t    <li '; if(page == 1){ print("class='disabled'"); };__p += ' ><a href="#" data-page="' +((__t = (prevPage)) == null ? '' : __t) +'">Prev</a></li>\r\n\t    '; for(var i = 1; i <= pages; i+=1){ ;__p += '\r\n\t\t\t<li '; if(i == page){ print("class='active'"); };__p += ' ><a href="#" data-page="' +((__t = (i)) == null ? '' : __t) +'">' +((__t = (i)) == null ? '' : __t) +'</a></li>\r\n\t\t'; } ;__p += '\r\n\t    <li '; if(page == pages){ print("class='disabled'"); };__p += ' ><a href="#" data-page="' +((__t = (nextPage)) == null ? '' : __t) +'">Next</a></li>\r\n\t  </ul>\r\n\t</div>\r\n'; } ;}return __p};

有谁能看到我在这里失踪的东西?

编辑:未编译的模板:

<%
var page = page || 1,
prevPage = 1,
nextPage = 1,
limit = limit || 12,
total = total || limit,
pages = Math.ceil(total/limit),
attributes = attributes || [];

page = parseInt(page);

(page > 1)? prevPage = page - 1: false;
(page < pages)? nextPage = page + 1: false;
%>

<% if(total > limit){ %>
    <div class="pagination" <% for(var i = 0; i < attributes.length; i += 1){ print("data-"+attributes[i].name+"='"+attributes[i].value+"' ");} %>>
      <ul>
        <li <% if(page == 1){ print("class='disabled'"); }%> ><a href="#" data-page="<%=prevPage%>">Prev</a></li>
        <% for(var i = 1; i <= pages; i+=1){ %>
            <li <% if(i == page){ print("class='active'"); }%> ><a href="#" data-page="<%=i%>"><%=i%></a></li>
        <% } %>
        <li <% if(page == pages){ print("class='disabled'"); }%> ><a href="#" data-page="<%=nextPage%>">Next</a></li>
      </ul>
    </div>
<% } %>

1 个答案:

答案 0 :(得分:0)

我开始从开发控制台收到有关错误实际位置的不一致消息。我最终不得不通过警报方法逐步完成此页面的加载过程,以查看错误输出的确切位置。我在jQuery中不熟悉这个问题,但这就是我在做的事情:

$('head > title').html(NEWTITLE);

在IE8中,您无法以这种方式修改文档标题。你需要使用:

document.title = NEWTITLE;

一旦我把它放到位,一切都开始工作了。这包括具有未编译模板的站点和已编译的模板。事实证明它与JST无关。