[英]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.