如何更改onbeforeunload消息的语言?

时间:2013-12-26 14:08:20

标签: javascript php html

我有一个典型的多语言网络应用程序(法语,英语和荷兰语),我正在使用页面卸载触发器来警告用户未保存的更改,同时离开页面/关闭标签/等等...工作正常。

我的问题是如何在不改变浏览器语言的情况下,使用对话框标题更改onbeforeunload消息的语言,并且“保留此页面”并“保留此页面”?

4 个答案:

答案 0 :(得分:0)

当您使用PhP吐出页面时,您会看到javascript所需的消息,请使用正确的语言回显该消息。

答案 1 :(得分:0)

通过HTML / javascript完成。在页面的HTML代码中添加var如下:

<script> 
    onBeforeUnloadMessage = "<% $MESSAGE_FROM_SERVER %>";
</script>

在javascript中使用此变量:

window.onbeforeunload = function () {
    return onBeforeUnloadMessage;
}

答案 2 :(得分:0)

目前无法更改onbeforeunload对话框的浏览器默认用户界面,因为它很容易被滥用:

  • 自定义浏览器的对话框将允许开发人员欺骗用户留在页面中(例如,更改按钮的文本内容或隐藏它们)。
  • 您不能用自己的代码替换onbeforeunload对话框,因为开发人员会决定何时可以关闭窗口,而不是浏览器的工作方式。

用户可以控制浏览器,而不是开发人员。因此这些限制。

假设用户的浏览器使用的是他/她可以理解的语言,他/她可以从中找出答案。这是我们目前最好的。

请参阅related thread

将来可能会使用Shadow DOM和新API进行更改,但我无法想到任何不容易被滥用的方法(除了请求“阻止关闭”API,类似于浏览器处理getUserMedia的方式)。如果您认为这是一项有助于其他开发人员的重要功能,请随时向WHWWG提出建议。

答案 3 :(得分:0)

您可以使用js

的语言翻译插件

http://www.jquery4u.com/plugins/10-jquery-translator-plugins/