phantomjs显示动态html,列出在PhantomJS中加载的页面的所有DOM事件

这篇博客探讨了如何在PhantomJS中记录页面加载时所有的DOM事件。作者通过修改`addEventListener`方法来追踪事件绑定,但发现无法记录事件。内容涉及对元素、元素、文档和窗口的`addEventListener`的重写,并尝试在触发事件时记录它们。然而,该方法似乎并未按预期工作。
摘要由CSDN通过智能技术生成

我想记录所有在JS和html中绑定的事件。我目前的解决方案,它不会记录任何内容,我做错了什么,或者有更好的方法捕获事件并保存它的回调?列出在PhantomJS中加载的页面的所有DOM事件

'use strict';

var page = require('webpage').create();

page.onConsoleMessage = function(msg) {

console.log('CONSOLE: ' + msg);

};

page.open('url', function (status) {

var _count = function() {

return page.evaluate(function() {

var htmlAddEventListener = HTMLElement.prototype.addEventListener;

HTMLElement.prototype.addEventListener = function(name, cb) {

console.log('1', name);

this.boundEvents || (this.boundEvents = {});

(this.boundEvents[name] || (this.boundEvents[name] = [])).push(cb);

return htmlAddEventListener.apply(this, arguments);

}

var elementAddEventListener = Element.prototype.addEventListener;

Element.prototype.addEventListener = function(name, cb) {

console.log('1', name);

this.boundEvents || (this.boundEvents = {});

(this.boundEvents[name] || (this.boundEvents[name] = [])).push(cb);

return elementAddEventListener.apply(this, arguments);

}

var documentAddEventListener = Document.prototype.addEventListener;

Document.prototype.addEventListener = function(name, cb) {

console.log('2', name);

this.boundEvents || (this.boundEvents = {});

(this.boundEvents[name] || (this.boundEvents[name] = [])).push(cb);

return documentAddEventListener.apply(this, arguments);

}

var windowAddEventListener = window.addEventListener;

window.addEventListener = function(name, cb) {

console.log('3', name);

this.boundEvents || (this.boundEvents = {});

(this.boundEvents[name] || (this.boundEvents[name] = [])).push(cb);

return windowAddEventListener.apply(this, arguments);

}

var elementDispatchEvent = Element.prototype.dispatchEvent;

Element.prototype.dispatchEvent = function(name, cb) {

console.log('1a', name);

return elementDispatchEvent.apply(this, arguments);

}

});

}

_count();

});

+0

它看起来像是订单。当我在评估结束时触发事件时,我会记录它。 –

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值