1

这很奇怪,我觉得有点愚蠢。

在 CRM 中,我点击F12并检查了黄色警告部分是一个带有 id Notifications的 DIV(以及称为Notification0Notification1等的子 DIV )。

然而,当我去的时候document.getElementById("Notifications"),我蹲了下来。怎么回事?!

另外,当我去的时候document.write(""),什么都没有改变。在 Cr 和 FF 中,它做到了,但 IE 没有反应。我疯了吗?

编辑:

在此处输入图像描述

以上为笔误。当我尝试执行时:

document.getElementById("crmNotifications")

我得到nada,也没有......建议?

4

3 回答 3

4

你没有疯,CRM 和浏览器也没有错 :)

如果您从浏览器的控制台运行 javascript,则您处于window整个页面的上下文中。然而,CRM 表单内容位于contentIFrameiframe 中。IFrames 实际上是单独的页面,您甚至可以编辑此 iframe 在 F12 开发人员工具中指向的链接到您想要的任何其他链接。尝试将其中的src属性更改为http://www.bing.com,您将在 CRM 窗口中看到 Bing 主页(仅保留功能区):

<iframe title="This is IFrame" id="contentIFrame" src="http://www.bing.com" 
        style="width: 100%; height: 100%; border-top-style: none; 
               border-right-style: none; border-bottom-style: none; 
               border-left-style: none; display: inline;" >

这就是为什么您无法获取crmNotificationsDOM 元素的原因 - 因为从控制台运行 javascript 时,您处于父窗口的上下文中。当您指定window.frames[0]时,它将为您提供页面上的第一个 IFrame(实际上这只是一个),在其中您将能够获得crmNotifications,因为它就在那里。

当您运行通过 CRM 自定义添加的自定义脚本时 - 它们链接到内部表单页面(IFrame 指向该页面),这就是您可以crmNotifications直接从这些脚本中获取的原因,因为您已经在“内容”页面上下文中。

于 2013-03-28T08:18:58.430 回答
3

如果我看得很清楚,你可能不是疯了一点点:D 通知是类而不是 id。id 是 crmNotifications。我写通知,我的书签中有这个链接

于 2013-03-27T15:36:51.703 回答
1

尝试

frames[0].document.getElementById('crmNotifications')

无论出于何种原因在 IE 中你都需要这个frames[0]位。如果你也想使用Xrm对象也是一样的。

于 2013-03-27T19:10:42.120 回答