gpt4 book ai didi

javascript - CoffeeScript onbeforeunload 使用函数而不是字符串进行响应

转载 作者:行者123 更新时间:2023-11-28 02:26:22 25 4
gpt4 key购买 nike

如果他们在重新加载当前页面之前有任何未保存的电子邮件,我会尝试提示使用。未保存的电子邮件存储在名为“未保存”的哈希中。我用 CoffeeScript 编写了脚本。

如果我使用此代码

  window.onbeforeunload = () ->
return "Your emails are not saved. Click \"Save Email\" on any email to save them all. If you would like to discard your emails, just leave this page" if unsaved.count > 0

而不是用我收到的消息提示我:

function ( data, fn ) {
return arguments.length > 0 ?
this.on( name, null, data, fn ) :
this.trigger( name );
}

Are you sure you want to reload this page?

CoffeeScript 翻译为:

window.onbeforeunload = function() {
if (unsaved.count > 0) {
return "Your emails are not saved. Click \"Save Email\" on any email to save them all. If you would like to discard your emails, just leave this page";
}
};

我应该如何让 CoffeeScript 返回字符串而不是函数?

最佳答案

这实际上与 CoffeeScript 无关。属性(property)window.onbeforeunload期望函数返回一个 string 或 void 返回值,但如果 unsaved.count <= 0您正在返回其他东西:

return $("form.edit_email_template").first().submit;

由于返回值非空,因此它将尝试强制转换 submit函数转化为字符串。老实说,我不确定为什么 CoffeeScript 生成该部分,因为它似乎没有出现在原始脚本中。

也就是说,您应该返回 void如果您不想看到该对话框:

if (unsaved.count > 0) {
return 'your emails are not saved.';
} else if (window.onbeforeunload) {
$("form.edit_email_template").first().submit();
}

关于javascript - CoffeeScript onbeforeunload 使用函数而不是字符串进行响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14868782/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com