我正在尝试从我插入CRM 2011中的表单的HTML Web资源中访问Xrm.Page.data对象。但是,根据我尝试访问Xrm实体的方式,我发现它是未定义的或Xrm.Page.data为空。 Web资源的代码如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<script type="text/javascript">
function OpenMyApp(e){
alert('Xrm defined: ' + (typeof Xrm != 'undefined'));
// The line above returns the string 'Xrm defined: false'
alert('window.top.opener.parent.Xrm defined: ' + (typeof window.top.opener.parent.Xrm != 'undefined'));
// The line above returns the string 'window.top.opener.parent.Xrm defined: true'
alert('frames[0].Xrm defined: ' + (typeof frames[0].Xrm != 'undefined'));
// the line above will actually throw an error and stop the script, because the frames collection is empty.
alert(window.top.opener.parent.Xrm.Page.data);
// the line above returns null.
// var myId = Xrm.Page.data.entity.attributes.get("new_field_i_want").getValue();
// The line above is what I would like to see work.
e.preventDefault();
}
</script>
</head>
<body>
<a onClick="OpenMyApp(event);" href="#">My Link</a>
</body>
</html>
我已经从JavaScript函数中成功访问了Xrm.Page.data,该JavaScript函数是在发生表单事件(例如Form.Load)时触发的库的一部分。就在我将其嵌入到表单中的HTML Web资源中的时候,我遇到了这个问题。谁能解释我在做什么错,以及是否确实有一种我想做的访问Xrm.Page.data的方法?
谢谢你。
最佳答案
尝试使用以下语法访问Xrm:
window.parent.Xrm.Page.getAttribute()...
window.parent.Xrm.Page.getControl()...
window.parent.Xrm.Page.context...
喜欢
alert(window.parent.Xrm.Page.data.entity.attributes.get("new_field_i_want").getValue());
从您的示例代码。
关于javascript - 无法从CRM 2011中的HTML Web资源中访问Xrm.Page.data,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21790176/