if ($pdf=$("#pdf_is_here")).length
for type in ["log","warn","error"]
do (type) =>
console[type]= (a...) =>
$pdf.append("<div class='#{type}'>#{s}</div>") for s in a
window.onerror= (messageOrEvent, source, lineno, colno, error) =>
$pdf.append("<div class='critical'>#{messageOrEvent}</div>")
$pdf.show()
$pdf.hide() # just in case css is not here
4条答案
按热度按时间vcudknz31#
在WKHTMLTOPDF中调试javascript的另一种(我认为是最简单的)方法是下载QT Browser(WKHTMLTOPDF使用的底层浏览器),并从浏览器中检查页面的javascript执行情况。
您可以从here下载
QT here中调试javascript的说明
基本上,您可以在QT浏览器中调试JavaScript,就像在Chrome或Firefox中一样。
xmq68pz92#
呈现test.html
就像这样
应该返回这样的内容
x6h2sr283#
虽然达菲朋克的答案是正确的,我有一个额外的想法几个星期前,这帮了我很多。这我想分享:在PDF内显示
当渲染PDF布局时,我将一个额外的(隐藏的)
DIV #pdf_errors
在源代码的早期--如果这里有
#pdf_errors
--我让控制台输出填充这个div,并在出错时显示它。这不是真正的调试,但至少我现在看到了哪里出了问题。在coffeescript中的源代码,我的普通javascript时代已经一去不复返了...
pod7payv4#
要 查看 wkhtmldopdf 产生 的 js 错误 , 请 在 命令 中 使用 "
--debug-javascript
" 参数 。请 ! 不要 使用 wkhtmltopdf - 〉 ( "
-q
" 或 "--quiet
" ) 的 安静 模式 , 因为 它 会 使 您 的 js 错误 安静 下来 , 您 将 看不到 任何 东西 。另外 , 如果 你 想 创建 类似 console.log ( ) 东西 , 如果 你 想 更 详细 地 调试 你 的 js , 你 可以 使用 :
throw new Error(yourVar)
, 您 将 在 wkhtmltopdf 的 响应 中 看到 内容 ( 确保 将 您 要 作为 错误 抛出 的 变量 转换 为 string ( 如果 它 是 一 个 对象 或 其他 对象 .. ) )wkhtmltopdf 文档 :https://wkhtmltopdf.org/usage/wkhtmltopdf.txt 的 最 大 值