我在URL上有以下简单网页:abcxyz.com:
var page = require('webpage').create();
page.onConsoleMessage = function(msg) {
console.log(msg);
};
page.open('http://abcxyz.com', function(status)
page.evaluate(function() {
console.log(document.getElementsByTagName("body")[0]["onscroll"]);
});
phantom.exit()
});
以下phantomjs脚本:
null
这会返回body
,这基本上说PhantomJS无法找到与<body>
关联的onscroll事件处理程序。
但是,如果我在<script>
console.log(document.getElementsByTagName("body")[0]["onscroll"].toString());
</script>
之后在原始网页的末尾查询正文[&#34; onscroll&#34;](不使用PhantomJS):
%dw 1.0
%output application/csv
---
[{
someDate: '2015/10/19 12:00:00' as :localdatetime {format: "yyyy/MM/dd H:mm:ss"}
as :date {format: "MM/dd/yyyy"}
} ]
然后它将返回onscroll处理程序。
我的问题是: 1.为什么PhantomJS无法检测到body元素的onscroll事件处理程序? 2.究竟是什么时候执行page.open()? onload事件后是否触发了网页?