我有一些要附加到MS Dynamics CRM 2011中的表单和HTML Web资源的JavaScript。它需要Xrm对象,该对象可以直接在表单上下文中使用,也可以在window.top.Xrm中使用。 HTML Web资源。
我以为我会写一个快速的函数来检查是否定义了Xrm,从而使我可以确定我是在表单中运行还是在HTML Web资源中运行。首先,因为我对javascript真的很陌生,所以我编写了这段代码来检查Xrm是否存在并显示一条消息。
alert('Running');
if(Xrm) { alert('Yup'); } else { alert('Nope'); }
alert('Done');
但是,这不起作用,我也不明白为什么。当它在表单事件(例如表单加载)中运行时,存在Xrm,并且我看到警报“正在运行”,“是”和“完成”。但是,在不能直接使用Xrm的HTML Web资源中运行时,我看到“正在运行”警报,但是javascript仅在下一行停止。
请帮忙!
最佳答案
当未定义Xrm
时,您的代码将引发异常ReferenceError: Xrm is not defined
并停止执行其余Javascript。要检查变量是否存在,应使用:
if (typeof Xrm !== 'undefined') { alert('Yup'); } else { alert('Nope'); }
关于javascript - 为什么我不能在CRM2011中检测到Xrm对象/函数不存在,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11118074/