Вопрос о регистрации и использовании jQuery в библиотеке domPDF

0

Мне нужно загрузить некоторый 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");

не могли бы вы сообщить мне, если это выполнимо или что я делаю неправильно здесь?

благодаря

  • 0
    вы получаете какие-либо ошибки в консоли? Попробуйте jQuery( document ).ready(function($) { если переменная $ еще не установлена.
  • 0
    Спасибо themerlinproject, я уже проверил это, кажется, dompdf не берет никакой библиотеки js. Кстати, вы видели мой последний пост на stackoverflow.com/questions/23298701/… ?
Показать ещё 1 комментарий
Теги:
dompdf

1 ответ

0

dompdf поддерживает только HTML + CSS. JavaScript (и, следовательно, jQuery) вообще не поддерживается. Чтобы dompdf отображал любой контент, динамически создаваемый с помощью JavaScript, вам нужно было бы сохранить содержимое страницы в браузере и отправить его обратно на сервер. Вы можете использовать скрытую форму, захватить соответствующий контент из документа, вставить его в поле textarea в форме, а затем отправить его обратно на сервер /dompdf для рендеринга.

Если вам нужна полная совместимость с браузером в вашем рендере, вам нужно посмотреть что-то вроде PhantomJS.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню