我有一个空的scriptblock:
<script id="target" type="text/html"></script>
我正在使用
jQuery("#target").load(...)
将几个单独文件的内容加载到目标scriptblock
为了简化,file1包含starthtml,file2包含一些包含所有开始和结束标记的各种html,file3包含endhtml
文件2加载完美,文件1和3然而不会加载或只是加载部分,而我从加载获得成功状态。看起来我的模板中的htmlcode中存在一些构造(不是结束开始标记或副verca)或某些字符,这些字符不会加载到脚本块中。
以下是加载后我的代码块中不会显示的真实内容:
</td>
<td width="1px" style="background-color:#CCCCCC;"></td>
</tr>
<tr>
<td colspan="3" height="1px" style="background-color:#CCCCCC;"></td>
</tr>
</table>
<!-- *** END WRAPPER TABLE *** -->
</td>
<td> </td>
</tr>
<tr>
<td> </td>
<td> </td>
<td> </td>
</tr>
</table>
</body>
</html>
<!-- *** END HMTL *** -->
如果我用更简单的html替换上面的内容,比如打击,那么它可以正常工作
</td></tr></table>
可能是什么原因,是否有解决方案或解决方法?
答案 0 :(得分:3)
好的,我找到了问题的根源和解决方案。
jQuery.load 的问题在于我想要做的是将设置目标元素的.html。使用jQuery设置.html 将导致jQuery解析/评估从服务器返回的有效html的内容,因为.load方法被创建为将内容加载到页面中的快捷方式。
如果使用jQuery.ajax,解析将不会发生,它只是从服务器获取结果,我可以自己进行任何处理,包括将内容放在我想要的元素中。 而不是使用 .html 设置scriptblock的内容我现在可以使用 .text 设置它,它不会解析内容。
这样我就可以在我的scriptblock中设置任何内容,稍后将用它来创建一个html模板/布局,以便在textarea中显示,以便用户可以复制。