我正在使用PhantomJS来截图网页。然而,该库调用托管的jQuery文件在页面DOM中注入jQuery功能以允许进行一些操作。在这里看到:http://phantomjs.org/api/webpage/method/include-js.htmlPhantomjs与page.includeJs一起使用本地文件?
的代码看起来是这样的:
if (loaded) {
page.includeJs("http://code.jquery.com/jquery-1.8.3.min.js",
function() { . . .
我不想让外部呼吁JS,因为(a)它的速度较慢及(b)其不可靠的。我想使用本地副本,并将路径设置为此类,但未加载。
page.includeJs("assets/javascript/jquery.min.js",
function() { . . .
这里有什么问题?为什么我的路径不能像我期望的那样工作?这个函数page.includeJs
不允许相对路径吗?
也尝试过injectJs。路径也没有解决。从阅读文档我认为他们也有微妙的差异。 – fyz 2014-10-20 00:36:36
@fab是的,有一些差异,但它是运行本地脚本的唯一方法。您可能提供了错误的文件路径。尝试使用绝对的一个,看看它是否工作。 – ghost 2014-10-20 00:55:06
Btw'injectJs'不正确DOCS:“注意:参数和评估函数的返回值必须是一个简单的原始对象,经验法则:如果它可以通过JSON序列化,那么它就没有问题 闭包,函数,DOM节点等不起作用!“请参阅链接:http://phantomjs.org/api/webpage/method/inject-js.html – fyz 2014-10-20 03:52:12