簡體   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