[英]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.