1

我有一些 javascript,我想在 MS Dynamics CRM 2011 中附加到表单和 HTML Web 资源。它需要 Xrm 对象,它可以在表单上下文中直接使用,也可以通过 window.top.Xrm 在HTML 网络资源。

我想我会写一个快速函数来检查是否定义了 Xrm,让我可以确定我是在表单中还是在 HTML Web 资源中运行。作为一个起点,因为我真的是 javascript 的新手,所以我编写了这段代码来检查 Xrm 是否存在并显示一条消息。

alert('Running'); 
if(Xrm) { alert('Yup'); } else { alert('Nope'); }
alert('Done'); 

但是,这不起作用,我不明白为什么。当它在表单事件(例如表单加载)中运行时,Xrm 存在并且我看到警报“正在运行”、“是的”和“完成”。但是,当在 Xrm 不直接可用的 HTML Web 资源中运行时,我看到“正在运行”警报,但 javascript 只是在下一行停止。

请帮忙!

4

1 回答 1

3

Xrm未定义时,您的代码将引发异常ReferenceError: Xrm is not defined并停止执行其余的 Javascript。要检查变量是否存在,您应该使用:

if (typeof Xrm !== 'undefined') { alert('Yup'); } else { alert('Nope'); }
于 2012-06-20T11:04:27.697 回答