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

posted @ 2011-02-28 17:07  无尽思绪  阅读(426)  评论(0编辑  收藏  举报