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

IE8 Unexpected Identifier error in compiled JST

本文关键字:IE8 意外 标识符 错误 编译 JST      更新时间:2023-09-26

我有很多使用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>
<% } %>

我开始从开发控制台收到关于错误实际位置的不一致消息。最后,我不得不用警报方法逐步完成这个页面的加载过程,以查看它到底在哪里出错。我不熟悉jQuery中的这个问题,但我正在做的是:

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

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

document.title = NEWTITLE;

一旦我把它放好,一切都开始运转起来。这包括带有未编译模板和已编译模板的网站。事实证明,这与JST无关。