所以我包括这样的某个库
var start = function() { ... }
var loadScript = function() {
script = document.createElement('script');
script.type = 'text/javascript';
script.src = 'https://whatever.com/js?callback=start';
document.body.appendChild(script)
}
window.onload = loadScript;
如您所见,我将一个名为“start”的函数设置为库的回调。麻烦的是,如果我缩小文件,该函数不再被称为start
。
我试过这个,但它不起作用。
script.src = 'https://whatever.com/js?callback=' + start.name;
如何以编程方式将函数名称添加到src
属性?
修改
我正在使用Rails 4,资产在Coffeescript中,所以我认为我不能使用命名函数声明。
答案 0 :(得分:1)
大多数minifiers不会崩溃全局指针。所以如果你有window.start
(虽然不是超级推荐那么多的通用全局名称)。
或者,为了证明这一点,window.MyAPP.Myutil.start
要记住的另一件事是匿名函数没有name
属性,即使您已将其分配给变量。您需要将其添加到函数声明中。
window.start = function start() {
// stuff
}
答案 1 :(得分:0)
你可以这样做,它可以与任何minifier一起使用。
var start = function() { ... }
var someObj = {'start': start};
然后使用someObj['start']()
调用您的启动功能。