mik*_*ike 34 javascript node.js phantomjs
是否可以从字符串创建页面?
例:
html = '<html><body>blah blah blah</body></html>'
page.open(html, function(status) {
// do something
});
Run Code Online (Sandbox Code Playgroud)
我已经尝试了以上没有运气....
此外,我认为值得一提的是我正在使用带有phantomjs-node的nodejs(https://github.com/sgentle/phantomjs-node)
谢谢!
Ari*_*yat 121
这很简单,看看colorwheel.js的例子.
var page = require('webpage').create();
page.content = '<html><body><p>Hello world</p></body></html>';
Run Code Online (Sandbox Code Playgroud)
就这样!然后您可以操纵页面,例如将其渲染为图像.
rah*_*202 18
为此,您需要将页面内容设置为您的字符串.
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();
});
});
});
Run Code Online (Sandbox Code Playgroud)
你需要用来page.set()
设置html内容.
根据https://github.com/sgentle/phantomjs-node#functionality-details
无法直接获取/设置属性.
而是使用page.get('version',callback)或page.set('viewportSize',{width:640,height:480})等.可以通过在键中包含点来访问嵌套对象,例如 page.set('settings.loadImages',false)
查看 phantomjs API, page.open 需要 URL 作为第一个参数,而不是 HTML 字符串。这就是为什么您尝试的方法不起作用。
然而,您可能能够实现从字符串创建页面的效果的一种方法是在具有 URL(可以是 localhost)的某处托管一个空的“骨架页面”,然后将 Javascript(使用 includeJs)包含到空白页。包含在空白页面中的 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>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
23533 次 |
最近记录: |