0

我在 Dynamics CRM 本地环境中有一个 HTML Web 资源。它保存为new_htmlpage1,现在单击自定义按钮,我将打开此HTMLWeb 资源。我ClientGlobalContext.js.aspx也在 HTML webresource 中添加了作为参考。但我仍然收到错误消息GetGlobalContext is not defined

下面是我的 HTML 源代码。

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

<script type="text/javascript">

function tempContext(){

 if (typeof GetGlobalContext != "undefined") {

            var userName = Xrm.Page.context.getUserName();

            alert(userName);

            return;

        }

}
</script>
</head>
<body onload="tempContext()">
</body>
</html>

这是我正在关注的 Microsoft 的演练,但仍然无法获取 GlobalContext。

请让我知道我在这里缺少什么。

4

1 回答 1

0

路径ClientGlobalContext.js.aspx是相对路径(相对于您的网络资源的位置),因此请确保您向上导航必要的次数。例如,您可能需要使用以下其中一项,具体取决于您的 Web 资源:

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

然后,您应该从 JavaScript 调用该函数GetGlobalContext()以访问全局上下文。

现在您正在尝试调用Xrm.*,这是不可用的。正如GetGlobalContext 函数的文档所述

包含对 ClientGlobalContext.js.aspx 的引用不会使 Xrm对象在 HTML Web 资源中可用。Xrm.*因此, HTML Web 资源不支持 包含方法的脚本。parent.Xrm.*如果 HTML Web 资源加载到表单容器中,它将起作用。但是,对于其他地方,例如加载 HTML Web 资源作为 SiteMap 的一部分,parent.Xrm.*也不起作用。

于 2019-07-01T12:15:51.373 回答