MS CRM Form Scripting(Include external js file ,like jquery.min.js)
function load_script(url) {
var x = new ActiveXObject("Msxml2.XMLHTTP");
x.open('GET', url, false); x.send('');
eval(x.responseText);
}
load_script("/isv/javascript/jquery.min.js");
load_script("/isv/javascript/xx.js");
看function load_script 其实很简单,就是一个ajax载入js文件即可。
其实就是通过eval来执行外部js代码。
这种方式会导致代码被缓存,同时,网上也有人指出eval的效率很低: http://mscrm4ever.blogspot.com/2009/04/crm-form-script-loader.html
其实缓存是正常的,可以避免代码每次加载,只不过在开发的时候,稍有不便。
我们可以这样解决缓存问题:
load_script("/isv/javascript/xx.js?"+Math.random());
不过记得在开发完成后,移除掉Math.random()
那么在xx.js里面应该如何写呢?
(function(){
//TODO
})();
//或者
(function($){
//TODO
})(jQuery);
这个代码也叫js的自执行代码。
-----------------美丽的分割线---------------------
MS CRM里面的lookup字段的获取:
// Get the field that fired the event.
var oField = event.srcElement;
// Validate the field information.
if (typeof(oField) != "undefined" && oField.DataValue != null)
{
var dd = oField.DataValue;
if(dd[0] != 'undefined'){
var id = dd[0].id;
//TODO
}
}
注意获取来的DataValue其实是一个数组(Array).
浙公网安备 33010602011771号