2
我在处理Microsoft Dynamics CRM 2011的HTML-web资源中的JS应用程序中的window.onbeforeunload事件时遇到了问题。通过使用“正常” IE下面的代码工作正常:在CRM 2011 Outlook客户端中处理JS窗口onBeforeUnload事件
window.onbeforeunload = function (e) {
if (changedData) {
var message = 'leave...';
if (typeof e == 'undefined') {
e = document.parentWindow.event;
}
if (e) {
e.returnValue = message;
}
return message;
}
}
但在CRM 2011 Outlook客户端中,我没有收到留言。关闭窗口时,你有什么想法留下留言吗?
onbeforeunload事件是不受支持的吗?我没有在SDK中找到它。有没有onbeforeunload事件的等价物? 代码显示,如果事件发生,则显示带有消息的窗口。就像在CRM实体窗体中进行任何更改并关闭窗口而不保存一样。 - >像这样:[link](http://stackoverflow.com/questions/6218468/javascript-onbeforeunload-function) 该代码在Outlook客户端之外工作。我用alert()测试它,并在IE浏览器中工作正常,所有警报都会显示出来,但在Outlook客户端代码不是调用。 – user1829815
对不起,我应该澄清一下 - 当我说“不被支持”时,我的意思是说,当在CRM环境中进行脚本编写时,微软只保证有些事情能够正常工作,并且会继续工作。 CRM SDK中不存在“onbeforeunload”这一事实意味着它不被CRM“支持”。感谢你澄清你的代码应该通过链接做什么(我从中学到了一些东西)。虽然我怀疑你是[this]的受害者(http://stackoverflow.com/questions/1728495/window-onbeforeunload-not-firing-in-child-window?rq=1)... –
... ,也许你可以尝试在你的函数的第一行放入一个'debugger;'语句并检查运行时发生了什么?另一个想法 - 这是一个自定义实体还是你在Outlook中使用CRM表单? (我知道这是一个基本问题,但只是检查)。例如,如果您使用的是Outlook表单的电子邮件或任务,则此代码将不会加载到那里。 –