這些值與其他瀏覽器一樣提供期望值。完整的示例:
var page = require('webpage').create();
var url = 'http://www.stackoverflow.com/';
page.open(url, function(){
console.log(page.evaluate(function(){
return JSON.stringify({
"document.body.scrollHeight": document.body.scrollHeight,
"document.body.offsetHeight": document.body.offsetHeight,
"document.documentElement.clientHeight": document.documentElement.clientHeight,
"document.documentElement.scrollHeight": document.documentElement.scrollHeight
}, undefined, 4);
}));
phantom.exit();
});
輸出:
{
"document.body.scrollHeight": 8777,
"document.body.offsetHeight": 8777,
"document.documentElement.clientHeight": 300,
"document.documentElement.scrollHeight": 8777
}
原因可能並非如此您:
- DOM是隻能通過
page.evaluate()
訪問。 page.evaluate()
以外存在document
對象,但它只是一個虛擬對象。
- PhantomJS有一個400x300像素的默認視口。如果網頁是響應式的,那麼它將只使用這個大小。
- 加上上面的點,
<body>
可能不可滾動,但只有一些具有所有(可滾動)內容的子元素。在這種情況下,每個值都等於視口高度。
如果沒有真正的瀏覽器,你期望得到什麼?爲什麼CMD線窗口高度不能用於測試目的?考慮一下你的帖子的[編輯]來澄清。 – jmort253
爲什麼CMD窗口的高度不能替代,因爲Phantom沒有實際的物理瀏覽器? – jmort253
CMD高度是什麼意思?你有什麼樣的價值觀,你期望什麼樣的價值觀?請顯示完整的示例腳本。 –