Я обычно использую приведенный ниже фрагмент, чтобы удалить первый отступ из моих блоков
, который отлично работает. Однако я использую вызов Ajax для заполнения html кода блок, который после завершения, он больше не форматируется, ive попытался поместить код предварительного форматирования после того, как результат был заполнен, но он все еще выходит с большим отступом в первой строке Я также пытался отформатировать данные .result with, который тоже не работал var pattern = data.result.match(/\s*\n[\t\s]*/);
results.html(data.result.replace(new RegExp(pattern, "g"),'\n'));
вот код:
<script>
$("pre").each(function(){
var html = $(this).html();
var pattern = html.match(/\s*\n[\t\s]*/);
$(this).html(html.replace(new RegExp(pattern, "g"),'\n'));
});
var waiting = $('#waiting').hide()
{% if task_id %}
var task_id = "{{ task_id }}";
var results = $('#results');
get_task_info(task_id);
function get_task_info(task_id) {
$.ajax({
type: 'get',
url: '/monitoring/get_task_info/'+task_id,
data: {'task_id': task_id},
success: function (data) {
results.html('');
if (data.state == 'PENDING') {
waiting.show();
}
else if(data.state == 'SUCCESS'){
waiting.hide();
results.html(data.result);
$("pre").each(function(){
var html = $(this).html();
var pattern = html.match(/\s*\n[\t\s]*/);
$(this).html(html.replace(new RegExp(pattern, "g"),'\n'));
});
}
if (data.state != 'SUCCESS') {
setTimeout(function () {
get_task_info(task_id)
}, 2000);
}
},
error: function (data) {
results.html("Error!");
}
});
}
{% endif %}
</script>
EDIT: JS Fiddle Here https://jsfiddle.net/ajwill0/ty7s39ko/2/
как ни странно, в скрипке ни один вариант не работает, у меня большой отступ там, где его не должно быть ...