如何编写事件处理程序并使用HTMLUnit检测某些JavaScript调用?

我想使用Java API HTMLUnit来检测JavaScript程序在网页上调用的eval()调用的数量。 但是,HTMLUnit没有用于此类JavaScript函数的内置处理程序。 如何才能做到这一点?

谢谢。


只是一个想法。 也许你可以用这段代码将脚本注入到你正在加载的html的开头:

(function(){
    const oldEval = window.eval;
    window.eval = function () {

        // communicate here with your Java program that eval has been
        // called. Maybe you can use the postMessage method?

        return oldEval.apply(this, arguments);
    };
})();

有了这个,你可以劫持eval函数,并且每次调用eval时都可以执行一些代码。 如果你找出一个与你的程序进行沟通的好方法,那么也许这是有效的。

不确定是否存在问题,但Javascript有多种方式在运行时评估代码,而不仅仅是评估。 所以,这是劫持直接调用eval,但不考虑使用Function构造函数或setTimeout等其他评估可能性。

链接地址: http://www.djcxy.com/p/40739.html

上一篇: How to write Event Handlers and detect certain JavaScript calls using HTMLUnit?

下一篇: Detect actual available computing power browser javascript