Мне нужно загрузить некоторый html-контент динамически на основе выбора пользователя на страницу print.php, которая использует библиотеку PHP dompdf для экспорта html в PDF. Теперь я должен включить jQuery и некоторые другие js-библиотеки в свой html, но кажется, что jquery не регистрируется правильно (или даже совсем не работает). в следующем примере я просто попробовал простой текст вставить в #result
с помощью .html()
но я получаю пустой PDF на выходе.
<?php
require_once("dompdf_config.inc.php");
$codigo= '
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<div id="result"></div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<script>
$( document ).ready(function() {
$( "#result" ).html( "This is Test" );
});
</script>
</body>
</html>
';
$codigo = utf8_decode($codigo);
$dompdf = new DOMPDF();
$dompdf->load_html($codigo);
ini_set("memory_limit","32M");
$dompdf->render();
$dompdf->stream("ejemplo.pdf");
не могли бы вы сообщить мне, если это выполнимо или что я делаю неправильно здесь?
благодаря
dompdf поддерживает только HTML + CSS. JavaScript (и, следовательно, jQuery) вообще не поддерживается. Чтобы dompdf отображал любой контент, динамически создаваемый с помощью JavaScript, вам нужно было бы сохранить содержимое страницы в браузере и отправить его обратно на сервер. Вы можете использовать скрытую форму, захватить соответствующий контент из документа, вставить его в поле textarea
в форме, а затем отправить его обратно на сервер /dompdf для рендеринга.
Если вам нужна полная совместимость с браузером в вашем рендере, вам нужно посмотреть что-то вроде PhantomJS.
jQuery( document ).ready(function($) {
если переменная $ еще не установлена.