无法从 CRM 中的 HTML 网络资源访问 Xrm.Page.context

Cannot access Xrm.Page.context from within HTML web resource in CRM

我正在尝试从 HTML 网络资源中访问 Xrm.Page.data 对象。我尝试访问 Xrm 上下文,我发现它未定义或 Xrm.Page 为空。网页资源代码如下:

function GetClientUrl() {
        if (typeof window.parent.Xrm.Page.context == "object") {
            clientUrl = window.parent.Xrm.Page.context.getClientUrl();
        }
        var ServicePath = "/XRMServices/2011/Organization.svc/web";
        return clientUrl + ServicePath;
    }

它只是在嵌入到 HTML 网络资源中时出现。谁能解释我做错了什么? 谢谢。

参考 ClientGlobalContext 在您的网络资源上,然后您应该能够像访问任何 CRM 表单一样访问 Xrm 对象。您不必访问父页面的 Xrm 对象。

<head>
<title>HTML Web Resource</title>
<script src="ClientGlobalContext.js.aspx" type="text/javascript" ></script>
</head>

Microsoft 提供了获取 Web 资源上下文的功能。

您需要添加对以下内容的引用:

<script src="../ClientGlobalContext.js.aspx" type="text/javascript" ></script>

然后你可以像这样获取上下文:

var context = GetGlobalContext();
clientUrl = context.getClientUrl();

文档:GetGlobalContext function and ClientGlobalContext.js.aspx (client-side reference)