当我将鼠标悬停在网页中的图片上时,会在状态栏javascript:main.somefunction("arg1","arg2","arg3")
中显示JavaScript函数。是否可以在网页的上下文中运行该功能并使用PhantomJS渲染结果?
答案 0 :(得分:0)
如果您有
等元素<a href='javascript:main.somefunction("arg1","arg2","arg3")'>
<img src='someImage.jpg'>
</a>
然后你应该在状态栏中看到链接的URI。由于页面必须知道main
对象以便在其上调用函数,因此main
必须是全局范围内的对象(在window
对象上)。您可以在页面上下文中调用main.somefunction("arg1","arg2","arg3")
或window.main.somefunction("arg1","arg2","arg3")
。
如果函数异步更改页面,则必须等待更改。可以使用setTimeout()
完成静态延迟。如果您需要等待特定条件,则可以使用waitFor()
function from the examples directory。
page.open(url, function(status){
if (status === "fail") {
console.log("Load failed");
phantom.exit(1);
return;
}
page.evaluate(function(){
main.somefunction("arg1","arg2","arg3")
});
setTimeout(function(){
page.render("screenshot.png");
phantom.exit();
}, 3000); // 3 seconds delay
});