在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(以page.content
):
page.content = content;
這可能還需要一些異步解耦如上。
另一個方法是將實際加載HTML文件page.open
:
page.open(filePathToHtmlFile, function(success){
// do something like render
phantom.exit();
});