【发布时间】:2014-12-13 22:05:26
【问题描述】:
我正在尝试将图像动态添加到已加载页面的 DOM 中,但在呈现页面时它没有显示。
在 page.evaluate 中像这样修改 DOM(摘录):
page.open(url, function(status) {
...
window.setTimeout(function () {
...
page.evaluate(function() {
...
var myimg = document.createElement("img");
myimg.setAttribute('src', 'http://www.foobar.com/fooimage.png');
myimg.setAttribute('height', '41px');
myimg.setAttribute('width', '80px');
outerdiv.appendChild(myimg); // outerdiv is visible in the rendered output
document.body.appendChild(outerdiv);
...
}
page.render
调试 page.content 显示添加成功,但是 page.render 没有显示(只有它附加到的 outerdiv)。我没有使用外部 URL src,而是尝试了一个 base64 编码的字符串,但没有成功。我还省略了路径并将文件存储在 PhantomJS 的包含路径中。这 3 个似乎都不起作用。
我的 window.timeout 也为 2000,所以我认为这不是在加载 PNG 之前呈现页面的问题。
添加 src 的正确方法是什么?外部 URL,本地文件?为什么甚至无法添加 base64 编码的图像?是否有任何安全限制阻止了我正在尝试做的事情?我正在运行 PhantomJS 1.9.0 顺便说一句。
【问题讨论】:
标签: javascript phantomjs