我在尝试使用javascript eval()和gwt时遇到问题。gwt jsni混淆变量名称
基本上,我在我的DB中的动态字符串,例如:
"'31.07.' + (myVar.getMonth() <= 7 ? myVar.getFullYear() + 3: myVar.getFullYear() + 4)"
myVar的应该是类型日期的JavaScript变量。
这个变量通过GWT JSNI传递:
private native String eval(Date dateFieldValue, String scriptlet) /*-{
var myVar = dateFieldValue;
return $wnd.eval(scriptlet);
}-*/;
但在小脚本字符串“myVar的”变量没有被人发现。 我发现这个: https://support.google.com/code/answer/55205?hl=en
这解释了为什么会发生这种情况。 我会到我的小脚本以这样的方式分开:
"'31.07.' + (" + myVar + ".getMonth() <= 7 ? " + myVar + ".getFullYear() + 3: " + myVar + ".getFullYear() + 4)"
的问题是,这不会是灵活的,因为小脚本是在数据库管理,而不是在代码中。那么在这种情况下该怎么办?这是不可能的吗?
代码混淆是一个选项,你可以简单地关闭它。 – Lista
但gwt仍会更改变量名称,或?不得不转变混淆将仅仅是我认为的太多。 – edu
是的,我同意,但在绝望的时刻可能是一个选择。 – Lista