代码如下:
var cd, dc = '__jsl_clearance=1464241448.7|0|';
var f = [function(x) {
return function realVeal() {
var l = ('String.fromCharCode(' + x + ')')
}, (function() {
var h = document.createElement('div');
h.innerHTML = '<a href=\'/\'>x</a>';
h = h.firstChild.href;
var r = h.match(/https?:\/\//)[0];
h = h.substr(r.length).toLowerCase();
return function(x) {
for (var i = 0; i < x.length; i++) {
x[i] = h.charAt(x[i])
};
return x.join('')
}
})()
}];
cd = [
[
[(-~(+!~~[]) << -~{})] + [-~(+!~~[]) + (+!~~[]) + (+!~~[]) + (-~(+!~~[]) << -~{})]
],
[((+[]) + [![],
[]
][-~(+[])])],
[((2 ^ -~![]) + [] + [
[]
][(+[])]) + (((+!~~[]) + [(-~(+!~~[]) << -~{})] >> (+!~~[])) + [] + [
[]
][(+[])]), (5 + [
[]
][~~!{}]) + ((+[]) + [![],
[]
][-~(+[])]), [(-~(+[]) + [(-~[] << -~[])]) / [(-~[] << -~[])]] + [(-~(+[]) + [(-~[] << -~[])]) / [(-~[] << -~[])]],
[-~(+!~~[]) + (+!~~[]) + (+!~~[]) + (-~(+!~~[]) << -~{})] + ((+[]) + [![],
[]
][-~(+[])]), (5 + [
[]
][~~!{}]) + (5 + [
[]
][~~!{}]), (((+!~~[]) + [(-~(+!~~[]) << -~{})] >> (+!~~[])) + [] + [
[]
][(+[])]) + (-~![] + [
[], !+{}
][(+[])])
],
[((2 ^ -~![]) + [] + [
[]
][(+[])])],
[
[-~(+!~~[]) + (+!~~[]) + (+!~~[]) + (-~(+!~~[]) << -~{})] + [(-~(+!~~[]) << -~{})], (-~![] + [
[], !+{}
][(+[])]) + ((+[]) + [![],
[]
][-~(+[])]) + [-~(+!~~[]) + (+!~~[]) + (+!~~[]) + (-~(+!~~[]) << -~{})], (9 + [] + []) + [-~(+!~~[]) + (+!~~[]) + (+!~~[]) + (-~(+!~~[]) << -~{})], (((+!~~[]) + [(-~(+!~~[]) << -~{})] >> (+!~~[])) + [] + [
[]
][(+[])]) + (-~![] + [
[], !+{}
][(+[])]), ((2 ^ -~![]) + [] + [
[]
][(+[])]) + (((+!~~[]) + [(-~(+!~~[]) << -~{})] >> (+!~~[])) + [] + [
[]
][(+[])]), (5 + [
[]
][~~!{}]) + ((+[]) + [![],
[]
][-~(+[])]), [(-~(+[]) + [(-~[] << -~[])]) / [(-~[] << -~[])]] + [(-~(+[]) + [(-~[] << -~[])]) / [(-~[] << -~[])]],
[-~(+!~~[]) + (+!~~[]) + (+!~~[]) + (-~(+!~~[]) << -~{})] + (5 + [
[]
][~~!{}]), [-~(+!~~[]) + (+!~~[]) + (+!~~[]) + (-~(+!~~[]) << -~{})] + [(-~(+!~~[]) << -~{})], (5 + [
[]
][~~!{}]) + (5 + [
[]
][~~!{}]), (((+!~~[]) + [(-~(+!~~[]) << -~{})] >> (+!~~[])) + [] + [
[]
][(+[])]) + (((+!~~[]) + [(-~(+!~~[]) << -~{})] >> (+!~~[])) + [] + [
[]
][(+[])]), (((+!~~[]) + [(-~(+!~~[]) << -~{})] >> (+!~~[])) + [] + [
[]
][(+[])]) + (5 + [
[]
][~~!{}])
],
[(9 + [] + [])],
[(9 + [] + []) + ((+[]) + [![],
[]
][-~(+[])]), [-~(+!~~[]) + (+!~~[]) + (+!~~[]) + (-~(+!~~[]) << -~{})] + ((+!~~[]) + (+!~~[]) + [] + [
[]
][(+[])])],
[(-~![] + [
[], !+{}
][(+[])]) + [(-~(+[]) + [(-~[] << -~[])]) / [(-~[] << -~[])]]],
[(5 + [
[]
][~~!{}]) + (((+!~~[]) + [(-~(+!~~[]) << -~{})] >> (+!~~[])) + [] + [
[]
][(+[])]), (((+!~~[]) + [(-~(+!~~[]) << -~{})] >> (+!~~[])) + [] + [
[]
][(+[])]) + (5 + [
[]
][~~!{}]), (-~![] + [
[], !+{}
][(+[])]) + ((+[]) + [![],
[]
][-~(+[])]) + ((+!~~[]) + (+!~~[]) + [] + [
[]
][(+[])]), (-~![] + [
[], !+{}
][(+[])]) + (-~![] + [
[], !+{}
][(+[])]) + ((+!~~[]) + (+!~~[]) + [] + [
[]
][(+[])])],
[(-~![] + [
[], !+{}
][(+[])]) + ((+!~~[]) + (+!~~[]) + [] + [
[]
][(+[])])],
[(-~![] + [
[], !+{}
][(+[])]) + ((+[]) + [![],
[]
][-~(+[])]) + (((+!~~[]) + [(-~(+!~~[]) << -~{})] >> (+!~~[])) + [] + [
[]
][(+[])]), ((2 ^ -~![]) + [] + [
[]
][(+[])]) + (((+!~~[]) + [(-~(+!~~[]) << -~{})] >> (+!~~[])) + [] + [
[]
][(+[])]), (5 + [
[]
][~~!{}]) + (-~![] + [
[], !+{}
][(+[])]), [(-~(+[]) + [(-~[] << -~[])]) / [(-~[] << -~[])]] + [-~(+!~~[]) + (+!~~[]) + (+!~~[]) + (-~(+!~~[]) << -~{})]]
];
for (var i = 0; i < cd.length; i++) {
cd[i] = f.reverse()[(-~![] + [
[], !+{}
][(+[])])](cd[i])
};
cd = cd.join('');
dc += cd;现在我将上述代码在java中的ScriptEngine类中的eval方法运行,但是无法获得html页面中的document对象导致程序报错。。有什么办法可以模拟一个document对象或者绕开这段代码吗

解决方案 »

  1.   

    我的目的是为了能在java端获得dc的值
      

  2.   

    你发错版块了。。移动到java去,js可以先运行得到结果后用ajax回发服务器比较简单,如果一定要java端执行这些代码不会java,不懂怎么搞了。。
      

  3.   

    碰到一个类似的问题,按如下方式解决:
    使用jsoup模拟document代码如下:
    js代码:
    function test(document) {
                 var h = document.getElementById('container');
                    return h+"test";
                }java代码:
    public static void main(String[] args) {
    // 创建空页面
    Document doc = Document.createShell(""); Element body = doc.body();
    body.append("<div id=\"container\" style=\"width:480px; height:100px;\"></div>"); ScriptEngineManager manager = new ScriptEngineManager();
    ScriptEngine engine = manager.getEngineByName("javascript");
    FileReader reader = null; try {
    reader = new FileReader("src/demo.js");
    engine.eval(reader);

    if (engine instanceof Invocable) {
    Invocable invoke = (Invocable) engine;
    Object obj = invoke.invokeFunction("test", doc);
    System.out.println(obj.toString());
    }
    } catch (Exception e) {
    e.printStackTrace();
    } finally {
    try {
    reader.close();
    } catch (IOException e) {
    e.printStackTrace();
    }
    }
    }运行结果如下:
    <div id="container" style="width:480px; height:100px;"></div>test