Javascript 在Play2.0中使用minified.js(谷歌闭包)中的函数

Javascript 在Play2.0中使用minified.js(谷歌闭包)中的函数,javascript,playframework-2.0,google-closure-compiler,Javascript,Playframework 2.0,Google Closure Compiler,我想使用Google闭包编译器来最小化javascript,但在最小化版本中,它重命名了函数名。这是故意的行为吗?在那种情况下如何使用这个 lib.js function myfun() { $('#test').hide(); } lib.min.js function myfun$$module$main(){$("#test").hide()} 看法 您应该将事件处理程序分配给JavaScript中的HTML元素,以便在编译过程中Google Close也可以重命名这些函数。您还

我想使用Google闭包编译器来最小化javascript,但在最小化版本中,它重命名了函数名。这是故意的行为吗?在那种情况下如何使用这个

lib.js

function myfun() {
   $('#test').hide();
}
lib.min.js

function myfun$$module$main(){$("#test").hide()}
看法


您应该将事件处理程序分配给JavaScript中的HTML元素,以便在编译过程中Google Close也可以重命名这些函数。您还可以使用不重命名函数或表达式的更简单版本的优化()

为HTML元素分配一个ID:

在JavaScript中,分配事件:

var link = document.getElementById("link");
var myFun = function () {
    alert("hello world");
};
link.onclick = myFun;

希望这有帮助

好的,你可以在那里做一些事情,你可以去:

1) 窗口['functionName']=将保留它的functionName或


2) 链接闭包库并使用goog.exportSymbol

这对您有帮助吗?我读过。。。但我认为不能在play框架内使用(如何设置编译器选项?)。。。也许我错了。我还没有找到方法…事件处理程序:是的,你说得对,但这并不总是可能的,也不比简单的
onclick=“myfunc()”
复杂。如何在Play2中使用另一个Google闭包优化?通常建议使用HTML来提供页面的结构,而不是功能。所以我会尽量避免在HTML标记中分配事件处理程序。是的,你是对的,但是如果你可以做一些更简单的事情,为什么不做呢?嗯,更简单的方法并不总是最好的。这始终是一种权衡,在这种情况下,您将生成质量更好的代码,还可以通过Google Closure运行代码并对其进行优化。
window['functionName']=functionName
works!我以前没有注意到这一点。谢谢。另一种方法是声明一个extern并将其传递给编译器,但是extern不应该以这种方式使用。实际上,任何像这样的字符串文本['jjj']都将停止重命名
var link = document.getElementById("link");
var myFun = function () {
    alert("hello world");
};
link.onclick = myFun;