我正在使用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