[13年迁移]jQuerySafe基于jQuery的安全模型,实现插件系统
和coco2dx学到的,John Resing大神的extend,应该是在最新的jQuery里用了的,那么继续继承jQuery对象,其实实现很简单
安全js插件系统的实现,只允许用户代码调用你提供的指定方法
1 var excludeiframe=/iframe/; 2 var jQuerySafe=jQuery.extend(jQuery,{ 3 this.SafeInit=function(){ 4 5 } 6 this=function(a){ 7 if(typeof a ==fragment){//实际不能识别碎片对象,需要别的逻辑 8 if(excludeiframe.test(a)){return alert("你不能使用框架,这不安全")} 9 return this._super(a); 10 } 11 if(typeof a== function){ 12 //这里要等跨域转接写好,触发ajax完成事件调这个给app初始化 13 } 14 return this._super("#yourArea").find(a); 15 } 16 this.parent=function(a){ 17 this._super(a); 18 } 19 this.appent=function(a){ 20 this._super(a); 21 } 22 this.fn.appentTO=function(a){ 23 this._super(a); 24 } 25 }); 26 function(){ 27 window=null; 28 document=null; 29 jQuery=null; 30 ...一切的window成员 31 function($){ 32 //插件区域 33 }(jQuerySafe) 34 } 35 36 //扩展的唯一区域申请 37 jQuery.extend({ 38 popup:function(){ 39 40 } 41 });
基于这个就可以做一个公开的javascript开发环境了,允许用户上传自己的javascript代码,调用你指定的接口