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

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

本文关键字:访问 Xrm Page context 资源 web CRM 中的 HTML      更新时间:2023-09-26

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

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 web资源中时才会发生。有人能解释一下我哪里做错了吗?谢谢你。

Microsoft提供了一个函数来获取web资源的上下文。

你需要添加一个引用到:

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

然后你可以像这样得到上下文:

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

文档:GetGlobalContext函数和ClientGlobalContext.js.aspx(客户端引用)

在您的web资源上引用ClientGlobalContext,然后您应该能够像在任何CRM表单上一样访问Xrm对象。您不需要访问父页面的Xrm对象。

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