Я работаю над приложением MVC C#, в котором содержимое div состоит из вызова AJAX, который извлекает поля базы данных и возвращается как сообщение об успешности JavaScript. Строка (тривиальный пример):Печать Div с изображениями
"<div style='background:yellow'>asdf<img src='myfile.jpg'></div>"
затем печатается:
function printDivContents(contents) {
var printContents = contents;
var originalContents = document.body.innerHTML;
document.body.innerHTML = "<div style='margin:10px'>" + printContents + "</div>";
window.print();
document.body.innerHTML = originalContents;
}
Everything принтами отлично в большинстве случаев, но есть изображение там что печатает тогда и только тогда, когда это было загружен ранее. Я бы хотел, чтобы он всегда печатал. Я попытался добавить скрипт предварительной загрузки в строку содержимого. Я могу использовать только чистый JavaScript, а не jQuery, и весь CSS должен быть встроенным. Каковы мои возможности для загрузки изображения? Должен ли я приостановить выполнение, чтобы дождаться загрузки DOM, назначьте изображение в качестве скрытого фона div на вызывающей странице или ...?
Даст ли ответ AJAX вам содержание строка полностью? Лучше ожидать ответ JSON, и если объект «image» будет найден, вы сможете создать новый узел «img» и загрузить изображение с помощью «img.src =» myfile.jpg ». Дайте мне знать, если что-то не имеет смысла. – Tyler
@Tyler, да, AJAX дает полную строку содержимого. В то время как разделение проблем создало бы создание DOM в представлении, было бы существенным проектом переместить код с серверной стороны на JavaScript. После написания моего вопроса я попытался добавить изображение в скрытый div на вызывающей странице, и он отлично работает ... единственная проблема заключается в том, что изображение теперь жестко закодировано и поэтому не может быть изменено динамически. Я все еще работаю над этой частью. Этот вопрос решен (скрытый фон div), но я буду держать его на месте, если у кого-то еще будет такая же проблема. Спасибо – Wes
Спасибо за понимание @Wes. В конечном итоге я получаю возможность анализировать атрибут src и устанавливать его программно. Настройка этого способа (после загрузки) должна правильно отображать изображение. Обычно я стараюсь избегать использования background: url(), но любое ленивое загруженное скрытое изображение также может работать. – Tyler