在Play 2.0中使用minified .js(Google Closure)中的函数

时间:2013-01-24 07:39:37

标签: javascript playframework-2.0 google-closure-compiler

我想使用Google Closure Compiler来最小化javascript,但在最小化版本中,它会重命名函数名称。这是预期的行为吗?在那种情况下如何使用它?

lib.js

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

lib.min.js

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

视图

<a href="#" onclick="myfun()">no longer works</a>

2 个答案:

答案 0 :(得分:1)

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

为HTML元素分配ID:<a href="#" id="link">does this work?</a>

在JavaScript中,指定事件:

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

希望这有帮助!

答案 1 :(得分:1)

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

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

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