我使用了blueimp-jquery-file-upload和smarty,因为blueimp在脚本中使用了奇怪的脚本标签,在脚本中有html标签,它与smarty引擎冲突,因此我得到了脚本故障。
<script id="template-upload" type="text/x-tmpl">这是用于上传的脚本标签

但是当它渲染时,它没有按正确的顺序出现,我试图更改分隔符,但仍然不起作用
下面是渲染后的html

请任何人告诉我,我如何解决它,当我把一些其他的JS而不是blueimp上传脚本,它工作得很好。
即使这样也不起作用
{literal}
<script id="template-upload" type="text/x-tmpl">
var a = 3;
<div class="B">sdfsdfs</div>
var j = 5;
<div class="A"></div>
</script>
{/literal}发布于 2013-02-17 21:18:23
这个BlueImp插件使用另一个名为Templates engine的jQuery插件从JavaScript生成HTML。它们碰巧使用了与Smarty相同的语法,这似乎破坏了您的代码。然而,HTML允许您通过手动将BlueImp定义为插件选项来覆盖此模板语言。您的JavaScript将如下所示:
$('#fileupload').fileupload({
filesContainer: $('#upload_files_container'),
uploadTemplateId: null,
downloadTemplateId: null,
uploadTemplate: function (o) {
var rows = $();
$.each(o.files, function (index, file) {
var row = $('<tr class="template-upload fade">' +
'<td class="preview"><span class="fade"></span></td>' +
'<td class="name"></td>' +
'<td class="size"></td>' +
(file.error ? '<td class="error" colspan="2"></td>' :
'<td><div class="progress">' +
'<div class="bar" style="width:0%;"></div></div></td>' +
'<td class="start"><button>Start</button></td>'
) + '<td class="cancel"><button>Cancel</button></td></tr>');
row.find('.name').text(file.name);
row.find('.size').text(o.formatFileSize(file.size));
if (file.error) {
row.find('.error').text(
locale.fileupload.errors[file.error] || file.error
);
}
rows = rows.add(row);
});
return rows;
},
downloadTemplate: function (o) {
var rows = $();
$.each(o.files, function (index, file) {
var row = $('<tr class="template-download fade">' +
(file.error ? '<td></td><td class="name"></td>' +
'<td class="size"></td><td class="error" colspan="2"></td>' :
'<td class="preview"></td>' +
'<td class="name"><a></a></td>' +
'<td class="size"></td><td colspan="2"></td>'
) + '<td class="delete"><button>Delete</button> ' +
'<input type="checkbox" name="delete" value="1"></td></tr>');
row.find('.size').text(o.formatFileSize(file.size));
if (file.error) {
row.find('.name').text(file.name);
row.find('.error').text(
locale.fileupload.errors[file.error] || file.error
);
} else {
row.find('.name a').text(file.name);
if (file.thumbnail_url) {
row.find('.preview').append('<a><img></a>')
.find('img').prop('src', file.thumbnail_url);
row.find('a').prop('rel', 'gallery');
}
row.find('a').prop('href', file.url);
row.find('.delete button')
.attr('data-type', file.delete_type)
.attr('data-url', file.delete_url);
}
rows = rows.add(row);
});
return rows;
}
});See their documentation。这将允许您在不使用Smarty语法的情况下生成HTML。
https://stackoverflow.com/questions/14921249
复制相似问题