【发布时间】:2012-08-29 18:14:07
【问题描述】:
基本上我需要将下面这段 JavaScript 翻译成 CoffeeScript。
location.href = "javascript:(" + function() {
window.onbeforeunload = function() {
notifyBackground(collectData());
return undefined;
};
} + "){}";
返回“未定义”很重要,因为如果我删除它,浏览器会要求用户确认他们是否要离开页面。
你可能想知道我在做什么。基本上,它是一个location hack for Firefox extension development。
我尝试过以下操作:
location.href = "javascript:(" + ->
window.onbeforeunload = ->
notifyBackground(collectData())
return undefined
+ ")()"
但这会变成:
location.href = "javascript:(" + function() {
return window.onbeforeunload = function(e) {
notifyBackground(collectData());
return void 0;
};
};
return +")()";
使用js2coffee.org 给了我这个:
location.href = "javascript:(" + ->
window.onbeforeunload = ->
notifyBackground collectData()
"undefined"
+ "){}"
如果我通过 CoffeeScript 运行它,我会得到这个 JS 输出(这是错误的)。
location.href = "javascript:(" + function() {
return window.onbeforeunload = function() {
notifyBackground(collectData());
return "undefined";
};
};
return +"){}";
【问题讨论】: