基本的に、次のJavaScriptをCoffeeScriptに翻訳する必要があります。
location.href = "javascript:(" + function() {
window.onbeforeunload = function() {
notifyBackground(collectData());
return undefined;
};
} + "){}";
「未定義」を返すことは重要です。なぜなら、私がページを削除した場合、ブラウザはユーザーにページを離れたいかどうかを確認するように求めるからです。
あなたは私がやっているwtfを不思議に思うかもしれません。基本的に、これは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 +"){}";