zoukankan      html  css  js  c++  java
  • jsonp和事件发布监听

    模拟jsonp

     1 var id = 0;
     2 function JSONP(url,param,cb){
     3     var callbackName = "json_" + id++;
     4     var arg = Array.prototype.slice.call(arguments);
     5     var _cb = arg.pop();
     6     window[callbackName] = function(data){
     7         head.removeChild(scriptNode);
     8         window[callbackName] = null;
     9         if(typeof _cb == "function"){
    10             _cb(data);
    11         }
    12     }
    13     var _url = url.replace("callback=?","callback="+callbackName);
    14     if(param){
    15         var arr = [];
    16         for(i in param){
    17             arr.push(i+"="+arr[i]);
    18         }
    19         _url += "&"+arr.join("&");
    20     }
    21     var head  =document.getElementsByTagName("head")[0];
    22     var scriptNode = document.createElement("script");
    23     scriptNode.src = _url;
    24     head.appendChild(scriptNode);
    25     
    26 }

    事件绑定/发布

     1 function EventMachine(){
     2     var _o  = {};
     3     this.bind = function(e,cb){
     4         if(!_o[e]){
     5             _o[e] = [];
     6         }
     7         _o[e].push(cb);
     8     }
     9     this.trigger = function(e,param){
    10         if(arguments.length==2&&Object.prototype.toString.call(param) == "[object Array]"){
    11             var arg = param;
    12         }else{
    13             var arg = Array.prototype.slice.call(arguments,1);
    14         }
    15         if(_o[e]&&_o[e].length>0){
    16             for(var i=0,l=_o[e].length;i<l;i++){
    17                 _o[e][i].apply(this,arg);
    18             }
    19         }
    20     }
    21 }
  • 相关阅读:
    PHP文件系统处理
    JavaScript数据类型
    JavaScript操作符
    JavaScript语法
    在 HTML 中使用JavaScript
    JavaScript概述
    PHP数组
    PHP基本语法
    Eclipse署动态web项目方法
    xml约束技术之dtd
  • 原文地址:https://www.cnblogs.com/peace1/p/4517279.html
Copyright © 2011-2022 走看看