我使用phantomjs加載本地HTML,它加載本地js文件,這樣的路徑是這樣的:是PhantomJS應該加載本地JS爲本地HTML文件
/Users/me/html/page.html
/Users/me/html/page.js
和頁面.html包含page.js
文件,並且我可以通過加載file:///Users/me/html/page.html
並在該頁面的控制檯中查看console.log
ing來驗證該文件。
現在這個js文件也只是添加一個屬性到身體來測試這個問題,這正常工作。當我用PhantomJS加載這個html文件時,但是js文件不會改變DOM(即不會將該屬性添加到body
)。
JS文件加載最後的HTML文件,因此它是在頁面的底部:
<html>
<head></head>
<body>
<script src="page.js"></script>
</body>
</html>
重新正常工作原理加載這個頁面,而是用phantom.js腳本它不:
var page = require("webpage").create();
var system = require("system");
var args = system.args;
var pageURL = args[1];
page.open(pageURL, function(status) {
if (status !== 'success')
{
console.log(status);
}
else
{
var result = page.evaluate(function()
{
return document.body.getAttribute("data-changed") || "not found";
});
console.log(result);
}
});
的page.js
看起來是這樣的:
document.body.setAttribute("data-changed", "true");
console.log("changed the page with js!")
那麼,PhantomJS suppo sed從正在打開的頁面運行js?或不?如果是的話,我在這裏做錯了什麼?
做了一個快速測試,它確實與PhantomJS v2.0.1dev工作,記錄'TRUE'。你的輸出/行爲是什麼? – Vaviloff
您的[HTML無效](https://www.w3.org/TR/html5/semantics.html#the-html-element)。根目錄下不能有腳本元素。把它放進身體或頭部。 –
你比我更有代表性,你也可以按編輯按鈕。 – erikvold