我试图从控制台执行以下命令。
var subject = Xrm.Page.ui.controls.get("subject");
这是我用在我堵到CRM是网络资源的确切语法。 不过,我只得到了一个错误信息说“无法获得属性‘控制’的未定义或空引用”。
我明白了消息。 我想知道的是双重的。
- 什么语法将会从控制台(F12)合作,指的是东西在屏幕上?
- 为什么它不工作,我做的方式? 凡没有按UI从何而来?
我检查,我可以同时参考XRM和Crm.Page但显然UI为空 (当我打印出来的页面 ,但SETT的内容为空它的上市)。
除了什么@Daryl说,我可以补充一点,我用不同的语法。 出于某种原因,我没有得到他的任何工作。 可能与不同的浏览器版本或事做。 相反,尝试执行此,如果您仍然无法得到它的工作(尽管我必须承认,他是短=越好)。
Xrm.Page.getAttribute("lastname").getValue();
姓氏部件进行测试一分钟前在创建实体联系的一个实例。 我只是把一个断点被平变化执行的脚本内,而破碎指出,我在上面输入到控制台的命令。
如果没有办法为你工作,你有你的CRM或浏览器的一些奇怪的问题。
我知道这是一个有点老线,但如果你仍然收到这个“对象不支持属性..”执行从控制台的命令时的错误,IE F12; 尝试从框架,即调用它
frames[0].Xrm.Page.getAttribute("controlId").getValue();
在CRM 2013这是一个有点不同
frames[1].Xrm.Page
这是一种很难检测在不同浏览器的框架,所以这个小JavaScript可以帮助你:
for(var i=0;i<5;i++) //loop through 0 to 4
if(frames[i].Xrm.Page.ui != undefined) //check if undefined
{
Xrm = frames[i].Xrm; //assign Xrm
console.info("~: Xrm updated with frame " + i + " :~"); //show info
break; //breakout the loop
}
它能做什么 ?
什么它基本上做的是通过0-5环找到帧中Xrm.Page.ui
不是undefined
,一旦得到它,它把它分配给了XRM并打破循环。
如何使用 ?
要使用它,只是每次会话都复制/粘贴,并运行在浏览器控制台,那么你可以运行后/测试所有的XRM码形成浏览器控制台。
这对我的作品Xrm.Page.getControl("controlId")
这只是对你有什么已经虽然...一个快捷方式倾斜,禁止设置到只读保护灰色-OUT-等-A-场
一个原因有些人需要这些信息来访问自己的代码。 如果您需要从控制台访问你自己的方法,在2011年,在你的JavaScript任何全局方法(或命名空间)也分别在表格[0]。 显然,这是一个坏主意,只是从一个命名的立场。 在形式V6 +任何全局对象或功能是在所谓的customScriptsFrame内部帧中的对象[0](或可能取帧中的XRM被发现)。
frames[0].customScriptsFrame.myFunctionName();