2014-05-21 42 views
4

我一直在尝试使用wkhtmltopdf工具(http://wkhtmltopdf.org/)生成PDF。从中我想生成使用jQuery和PDF页面有使用jQuery.ready()功能,像这样一些初始化:wkhtmltopdf和jQuery.ready()函数

jQuery(function() { 
    // do something 
}); 

然而,当我尝试生成不执行脚本的页面的PDF文件。我试过设置一个延迟来等待JavaScript执行时使用以下选项:

--javascript-delay 30000 

但是结果是一样的。

当我启用wkhtmltopdf的JavaScript调试选项我得到一个警告,这我不知道,如果它涉及到的问题:

Warning: undefined:0 TypeError: 'null' is not an object 

有没有人遇到这个问题?有没有某种解决方法?

编辑:看来问题是由错误造成Warning: undefined:0 TypeError: 'null' is not an object.我已经成功使用上打印PDF错误:

window.onerror = function(error, url, line) { 
    $('body').before('<b> Error: ' + error + '</b> <br />'); 
    $('body').before('<b> Url: ' + url + '</b> <br />'); 
    $('body').before('<b> Line: ' + line + '</b> <br />'); 
    console.log(error, ' ', url, ' ', line); 
}; 

但信息是非常有限的,我不知道什么可能导致它:

Error: TypeError: 'null' is not an object 
Url: undefined 
Line: 0 
+1

听起来像页面中的JavaScript不适用于Qt的旧版webkit。你可以添加代码或链接到页面? – jgillich

+0

不幸的是,我无法提供网页的代码。有没有办法看到有意义的堆栈跟踪?因为这个错误是完全没用的。 – Ivo

+0

'--debug-javascript'也许?你也可以尝试一个基于QtWebKit的浏览器,如Arora(https://code.google.com/p/arora/),它有WebKit的检查员。 – jgillich

回答

5

原来,这个问题是使用Qt不支持本地存储,所以初始化脚本的一个失败这将造成T他没有执行jQuery.ready()。

我设法使用Qt支持的浏览器进行调试:QtWeb。 (也试过Arora,无法在我的系统上运行)。

+0

我得到了与localStorage相同的问题,并发现与QtWeb的问题。非常适合调试。谢谢。 – Maxence

相关问题