基本上我需要将以下一段 JavaScript 翻译成 CoffeeScript。
location.href = "javascript:(" + function() {
window.onbeforeunload = function() {
notifyBackground(collectData());
return undefined;
};
} + "){}";
返回“未定义”很重要,因为如果我删除它,浏览器会要求用户确认他们想要离开页面。
你可能想知道我在做什么。基本上,它是用于 Firefox 扩展开发的定位黑客。
我尝试过执行以下操作:
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 +"){}";