dojox/analytics/plugins/mouseOver.js

  • Provides:

    • dojox.analytics.plugins.mouseOver
  • Requires:

    • dojox.analytics._base in common
  • dojox.analytics.plugins.mouseOver

    • type
      Function
    • ?? initialized = 1 (debug: boolean) ??
    • source: [view]
       this.watchMouse = dojo.config["watchMouseOver"] || true;
       this.mouseSampleDelay = dojo.config["sampleDelay"] || 2500;
       this.addData = dojo.hitch(dojox.analytics, "addData", "mouseOver");
       this.targetProps = dojo.config["targetProps"] || ["id","className","localName","href", "spellcheck", "lang", "textContent", "value" ];


       this.toggleWatchMouse=function(){
        if (this._watchingMouse){
         dojo.disconnect(this._watchingMouse);
         delete this._watchingMouse;
         return;
        }
        dojo.connect(dojo.doc, "onmousemove", this, "sampleMouse");
       }


       if (this.watchMouse){
        dojo.connect(dojo.doc, "onmouseover", this, "toggleWatchMouse");
        dojo.connect(dojo.doc, "onmouseout", this, "toggleWatchMouse");
       }


       this.sampleMouse=function(e){
        if (!this._rateLimited){
         this.addData("sample",this.trimMouseEvent(e));
         this._rateLimited=true;
         setTimeout(dojo.hitch(this, function(){
          if (this._rateLimited){
           //this.addData("sample", this.trimMouseEvent(this._lastMouseEvent));
           this.trimMouseEvent(this._lastMouseEvent);
           delete this._lastMouseEvent;
           delete this._rateLimited;
          }
         }), this.mouseSampleDelay);
        }
        this._lastMouseEvent = e;
        return e;
       }


       this.trimMouseEvent=function(e){
        var t = {};
        for (var i in e){
         switch(i){
          //case "currentTarget":
          case "target":
          //case "originalTarget":
          //case "explicitOriginalTarget":
           var props=this.targetProps;
           t[i]={};
           //console.log(e, i, e[i]);
           for(var j=0;j      if(dojo.isObject(e[i]) && props[j] in e[i]){

             
             if (props[j]=="text" || props[j]=="textContent"){
              if (e[i]["localName"] && (e[i]["localName"]!="HTML")&&(e[i]["localName"]!="BODY")){
               t[i][props[j]]=e[i][props[j]].substr(0,50);
              }
             }else{
              t[i][props[j]]=e[i][props[j]];
             }
            }
           }
           break;
          //case "clientX":
          //case "clientY":
          //case "pageX":
          //case "pageY":
          //case "screenX":
          //case "screenY":
          case "x":
          case "y":
           if (e[i]) {
            //console.log("Attempting: " + i);
            var val = e[i];
            //console.log("val: " + val); console.log(i + "e of i: " + val);
            t[i]=val + '';
           }
           break;
          default:
           //console.log("Skipping: ", i);
           break;
         }
        }
        return t;
       }
    • summary
  • dojox.analytics.plugins.mouseOver.watchMouse

    • summary
  • dojox.analytics.plugins.mouseOver.mouseSampleDelay

    • summary
  • dojox.analytics.plugins.mouseOver.addData

    • summary
  • dojox.analytics.plugins.mouseOver.targetProps

    • summary
  • dojox.analytics.plugins.mouseOver._rateLimited

    • summary
  • dojox.analytics.plugins.mouseOver._lastMouseEvent

    • summary
  • dojox.analytics.plugins.mouseOver.toggleWatchMouse

    • type
      Function
    • source: [view]
        if (this._watchingMouse){
         dojo.disconnect(this._watchingMouse);
         delete this._watchingMouse;
         return;
        }
        dojo.connect(dojo.doc, "onmousemove", this, "sampleMouse");
    • summary
  • dojox.analytics.plugins.mouseOver.sampleMouse

    • type
      Function
    • parameters:
      • e: (typeof )
    • source: [view]
        if (!this._rateLimited){
         this.addData("sample",this.trimMouseEvent(e));
         this._rateLimited=true;
         setTimeout(dojo.hitch(this, function(){
          if (this._rateLimited){
           //this.addData("sample", this.trimMouseEvent(this._lastMouseEvent));
           this.trimMouseEvent(this._lastMouseEvent);
           delete this._lastMouseEvent;
           delete this._rateLimited;
          }
         }), this.mouseSampleDelay);
        }
        this._lastMouseEvent = e;
        return e;
    • summary
  • dojox.analytics.plugins.mouseOver.trimMouseEvent

    • type
      Function
    • parameters:
      • e: (typeof )
    • source: [view]
        var t = {};
        for (var i in e){
         switch(i){
          //case "currentTarget":
          case "target":
          //case "originalTarget":
          //case "explicitOriginalTarget":
           var props=this.targetProps;
           t[i]={};
           //console.log(e, i, e[i]);
           for(var j=0;j      if(dojo.isObject(e[i]) && props[j] in e[i]){

             
             if (props[j]=="text" || props[j]=="textContent"){
              if (e[i]["localName"] && (e[i]["localName"]!="HTML")&&(e[i]["localName"]!="BODY")){
               t[i][props[j]]=e[i][props[j]].substr(0,50);
              }
             }else{
              t[i][props[j]]=e[i][props[j]];
             }
            }
           }
           break;
          //case "clientX":
          //case "clientY":
          //case "pageX":
          //case "pageY":
          //case "screenX":
          //case "screenY":
          case "x":
          case "y":
           if (e[i]) {
            //console.log("Attempting: " + i);
            var val = e[i];
            //console.log("val: " + val); console.log(i + "e of i: " + val);
            t[i]=val + '';
           }
           break;
          default:
           //console.log("Skipping: ", i);
           break;
         }
        }
        return t;
    • summary
  • dojox.analytics.plugins

    • type
      Object
    • summary
  • dojox.analytics

    • type
      Object
    • summary
  • dojox

    • type
      Object
    • summary