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).