【发布时间】:2011-06-10 21:50:40
【问题描述】:
我有一个复杂的、生成的 Javascript 文件(它由 GWT 编译器生成),我需要能够以编程方式对此进行更改并输出文件的“清理”版本。特别是,我有:
function bookmark(){
// lots-o-javascript
var M=Vb+s+I+Wb;n.write(Xb+Yb+Zb+$b+_b+ac+bc+$b+_b+cc+dc+ec+M+fc+gc+hc+ic)
}
bookmark();
未混淆,函数内部如下:
var compiledScriptTag = '"<script src=\\"' + base + strongName + '.cache.js\\"><\/scr" + "ipt>"';
$doc_0.write('<scr' + 'ipt><!-' + '-\n' + 'blah blah blah' + 'document.write(' + compiledScriptTag + ');' + '\n-' + '-><\/scr' + 'ipt>');
所以我需要做的是在一个Java servlet中,将上面两行转换成等价于:
eval('blah blah blah');
document.body.appendChild(document.createElement('script')).src=base + strongName + ".cache.js";
解析和重新排列这个 Javascript 文件的最佳选择是什么?我应该研究一下 Rhino,它是否能够为这些提供句柄(以及使用 $doc.write 编写的嵌套 Javascript)?任何想法将不胜感激。
【问题讨论】:
-
在 GWT 编译成 JavaScript 之前,将函数包含到 Java 代码中不是更容易吗?
-
我认为您指的是 GWT 中的内联原生 JS 函数?我认为这行不通,此代码位于 Javascript 加载程序中,而不是已编译的应用程序中。如果您知道如何使这项工作发挥作用,请告诉我。
标签: java javascript gwt serverside-javascript