可以从字符串创建页面吗?
示例:
html = '<html><body>blah blah blah</body></html>'
page.open(html, function(status) {
// do something
});我已经尝试过上面的方法,但没有成功...
另外,我认为值得一提的是,我使用的是nodejs和phantomjs-node(https://github.com/sgentle/phantomjs-node)
谢谢!
发布于 2012-08-01 01:48:18
看一下phantomjs,page.open需要一个API作为第一个参数,而不是一个HTML。这就是您尝试的内容不起作用的原因。
但是,实现从字符串创建页面的效果的一种方法是托管一个空的“骨架页面”,在某个地方使用URL (可以是localhost),然后将Javascript (使用include then )包含到空页面中。包含在空白页面中的Javascript可以使用document.write("<p>blah blah blah</p>")向网页动态添加内容。
这是我做过的事,但是我想这应该行得通。
示例框架页面:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head></head>
<body></body>
</html>发布于 2012-08-02 13:20:13
这非常简单,看一下colorwheel.js示例。
var page = require('webpage').create();
page.content = '<html><body><p>Hello world</p></body></html>';就这样!然后你可以操作页面,比如把它渲染成一个图像。
发布于 2015-04-06 17:48:59
为此,您需要将页面内容设置为您的字符串。
phantom.create(function (ph) {
ph.createPage(function (page) {
page.set('viewportSize', {width:1440,height:900})
//like this
page.set('content', html);
page.render(path_to_pdf, function() {
//now pdf is written to disk.
ph.exit();
});
});
});您需要使用page.set()来设置html内容。
根据https://github.com/sgentle/phantomjs-node#functionality-details
无法直接获取/设置
属性。
而是使用版本(‘page.get’,回调)或page.set('viewportSize',{page.get:640,height:480})等。可以通过在键中包括点来访问嵌套对象,如page.set('settings.loadImages',page.set)
https://stackoverflow.com/questions/11744089
复制相似问题