[英]How can I load a DOM from a string in PhantomJS?
PhantomJS中的默认page
与about:blank
相当,基本上是
<html>
<body>
</body>
</html>
这意味着您可以直接将svg添加到DOM并进行渲染。 看来你必须异步渲染它才能让浏览器有时间实际计算svg。 这是一个完整的脚本:
var page = require('webpage').create(),
fs = require('fs')
var content = fs.read("EarlierSavedPage.svg")
page.evaluate(function(content){
document.body.innerHTML = content;
}, content);
setTimeout(function(){
page.render("EarlierSavedPage.png"); // render or do whatever
phantom.exit();
}, 0); // phantomjs is single threaded so you need to do this asynchronously, but immediately
将HTML文件加载到内容中时,可以直接将其分配给当前DOM(to page.content
):
page.content = content;
这可能还需要一些异步去耦,如上所述。
另一种方法是使用page.open
实际加载HTML文件:
page.open(filePathToHtmlFile, function(success){
// do something like render
phantom.exit();
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.