如何在Dynamics CRM中使用jQuery操作DOM
How to manipulate DOM in Dynamics CRM using jQuery
试图通过使用jQuery的append方法更新字段值来操纵DOM。
发现在Dynamics CRM中不允许使用普通javascript或jQuery操作DOM
因此尝试添加一个HTML Web资源与脚本在它的源选项卡:
将该函数添加到项目表单中,并配置为在OnLoad
事件时调用。但是,它会在表单加载之前被调用。
该函数在console
中执行时工作良好,但当被系统调用时,它不起作用。
setTimeout(ShowProjectAge, 3000);
function ShowProjectAge() {
var createdOn = Xrm.Page.getAttribute("createdon");
var createdOnDt = new Date(createdOn.$2_2.$2T_2);
var today = new Date();
var DiffDays = GetDiffDays(createdOnDt, today);
//var projectAge = $('#processDuration').html();
//$('#HeaderTilesWrapperLayoutElement').html(projectAge);
//$('#HeaderTilesWrapperLayoutElement').css('color','black');
console.log('The Project Age is ' + DiffDays);
var div = $('#HeaderTilesWrapperLayoutElement');
div.text('The Project Age is ' + DiffDays + ' days');
div.css('color', 'black');
div.css('font-weight', 'bold');
}
function GetDiffDays(date1, date2) {
var timeDiff = Math.abs(date2.getTime() - date1.getTime());
return Math.round(timeDiff / (1000 * 3600 * 24));
}
在完全加载DOM时,ShowProjectAge
工作良好。但是,当从系统调用时,它不会被加载。
尝试使用document.ready
根据我对Dynamics CRM DOM的理解,所有的javascript都在一个单独的空iframe中。
表单元素在另一个空iframe内。
注意它们都在同一个窗口中,因此将这一行改为:
var div = $('#HeaderTilesWrapperLayoutElement');
:
var div = $('#HeaderTilesWrapperLayoutElement', window.parent.document);
首先,不要在CRM中做任何DOM操作。不值得这么做。。
第二,这可以用零代码开箱即用:- 创建自定义计算字段
- 使用这个公式:DiffInDays(createdon, Now())
- 把这个字段放在表单的任何你想要的地方
第三,这是完全错误的:
var createdOn = Xrm.Page.getAttribute("createdon");
var createdOnDt = new Date(createdOn.$2_2.$2T_2);
你可以这样获取日期:
var createdOnDt = Xrm.Page.getAttribute("createdon").getValue();
你有两个选择,首先你可以打开"遗留表单呈现"打开遗留呈现或者你必须重构你的代码和使用支持的方法链接到文档
,但我在想,你不能改变css使用Xrm。页
相关文章:
- 是否可以使用Jquery操作窗体的目标窗口
- 如何使用jquery操作iframe对象
- JavaScript:将所见即所得编辑器对实时站点的更改转换为jQuery操作
- jquery操作与匹配项在替换
- JQuery 操作取决于选择的单选按钮 - if/else
- 将jQuery操作应用于特定控件
- 使用jquery操作html的部分内容
- 使用jquery操作::选择
- 如何删除绑定到单击事件的任何jQuery操作
- AngularJS在HTML渲染后使用JQuery操作DOM
- 如何在chrome中使用jquery操作剪贴板数据,IE 8&9
- 防止jQuery操作在滚动时再次发生
- 使用Jquery操作窗体的复选框
- 使用 jQuery 操作 DOM 对象
- 使用 jQuery 操作“选择”中的“删除项”
- 尝试使用 jQuery 操作 CSS 样式
- 无法在 pjax 请求上使用 jQuery 操作 HTML 元素
- 使用 jquery 操作 JSON 数组
- 是否可以对 React.js DOM 树执行所有这些 jQuery 操作
- 如何将链接绑定到我可以使用 Jquery 操作的按钮