【问题标题】:How to get DOM event listeners using java如何使用 java 获取 DOM 事件侦听器
【发布时间】:2013-12-09 22:11:44
【问题描述】:
我正在尝试构建一个可以处理 AJAX 应用程序的爬虫。我正在使用 htmlunit 以编程方式浏览。
爬虫需要知道分配给 DOM-Elements 的事件而不触发事件。
【问题讨论】:
标签:
java
javascript
dom
htmlunit
web-crawler
【解决方案1】:
您可以像这样覆盖 addEventListener 方法:
// Create a copy or addEventListener for subsequent calls
HTMLElement.prototype.realAddEventListener = HTMLElement.prototype.addEventListener;
// This array should contains all listeners added to each element
HTMLElement.prototype.allListeners = [];
HTMLElement.prototype.addEventListener = function(a,b,c){
this.realAddEventListener(a,b,c);
this.allListeners.push({a : a, b : b , c : c});
};
您可以让所有侦听器在页面上的每个 HTMLElement 上调用 allListeners 属性。
【讨论】:
-
问题是:如何注入修改后的 javascript 代码,并确保它在页面加载时首先运行?... 以编程方式发出的请求如下: webClient.getPage("localhost/....." ); * 我需要在原始 addEventLitener 被调用之前在响应中注入重写的 addEventListener 方法。
-
-