大挖在开发主题时,发现引入jquery时会,出现jquery Syntax error, unrecognized expression的报错,后来经过搜索查询得到以下结果,
jquery 1.9*开始为了安全性,必须将script中的html内容parseHTML转换后使用。否则就报无法解析HTML内容的错误 。
模板如下代码:
1 2 3 4 5 6 7 8 9 10 |
<script type="text/template" id="link-template"> <li class="linkItem"> <div data-role="fieldcontain" class="linkContainer" > <input data-mini="true" data-inline="true" class="linkInput" name="content[]" data-theme="c" placeholder="Insert Link here" type="text" maxlength="2000" /> <a data-role="button" data-mini="true" data-iconshadow="false" data-theme="d" class="deleteIcon" data-inline="true" data-icon="remove" data-iconpos="notext">Delete</a> </div> </li> </script> |
操作代码:
1 2 |
var linkUl = $("#linkUl"), listHeight; $(this.linkTemplate).appendTo(linkUl); |
修改后的操作代码:
1 2 |
var linkUl = $("#linkUl"), listHeight; $($.parseHTML(this.linkTemplate, document, true)).appendTo(linkUl); |
解决代码:
1 2 3 4 5 6 7 8 |
/ This can come from an evil person var html = "<p>hello</p><script src='bad.js'></script>" // Won't load/run the script in 1.10 $(html).appendTo("body"); // Loads and runs script $($.parseHTML(html, document, true)).appendTo("body"); |