繁体   English   中英

从Java获取javascript函数的参数值?

[英]Get values of parameters of javascript function from Java?

对于我的Java应用程序,我需要能够在给定JavaScript字符串的情况下确定传递给函数调用的实际参数。

例如,给定以下JavaScript字符串:

const url = "http://foo.bar?q=" + location.href
const method = "GET"
const isAjax = true

let xmlhttp = new XMLHttpRequest();
xmlhttp.open(method, url, isAjax);

我想评估此JavaScript,以获取此信息:

xmlhttp.open("GET", "http://foo.bar?q=someurl", true);

现在,我正在使用正则表达式来查找我感兴趣的JavaScript部分(在此示例中,这将是XMLHttpRequest对象的open方法),但是我需要能够计算JavaScript的实际值。传递给函数的参数(如果未从调用端对其进行硬编码)。

我一直在这里搜索,但是发现的内容与实际执行JavaScript代码更相关,而不是查看其表达式值(更像是评估它,获取AST之类)。

关于如何做到这一点的任何想法?

我的想法是添加一些JavaScript 模拟库(例如sinon)并执行此javascript。 特别看看伪造的XMLHttpRequest

Javascript代码将如下所示:

let sinon = require('sinon');
let xhr = sinon.useFakeXMLHttpRequest();
let requests = [];
xhr.onCreate = function (xhr) {
        requests.push(xhr);
    }
const url = "http://foo.bar?q=" + location.href
const method = "GET"
const isAjax = true

let xmlhttp = new XMLHttpRequest();
xmlhttp.open(method, url, isAjax);

console.log(requests[0].url)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM