New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

h21-map-event-wrapper-baidu

Package Overview
Dependencies
Maintainers
1
Versions
3
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

h21-map-event-wrapper-baidu - npm Package Compare versions

Comparing version 1.0.4 to 1.0.5

README.md

302

index.js

@@ -1,178 +0,124 @@

1 /**
2 * @fileoverview 百度地图API事件包装器
3 * 此代码可使用closure compiler的advanced模式进行压缩
4 * @author Baidu Map Api Group
5 * @version 1.2
6 */
7 /**
8 * @namespace BMap的所有library类均放在BMapLib命名空间下
9 */
10 var BMapLib = window.BMapLib || {};
11 /**
12 * 事件封装器的静态类,不可实例化
13 * @class EventWrapper
14 */
15 BMapLib.EventWrapper = window.BMapLib.EventWrapper || {};
16 (function(){
17
18 //var EventWrapper = window.BMapLib.EventWrapper;
19 /**
20 * 添加DOM事件监听函数
21 * @param {HTMLElement} element DOM元素
22 * @param {String} event 事件名称
23 * @param {Function} handler 事件处理函数
24 * @returns {MapsEventListener} 事件监听对象
25 */
26 BMapLib.EventWrapper.addDomListener = function(instance, eventName, handler) {
27 if (instance.addEventListener) {
28 instance.addEventListener(eventName, handler, false);
29 }
30 else if (instance.attachEvent) {
31 instance.attachEvent('on' + eventName, handler);
32 }
33 else {
34 instance['on' + eventName] = handler;
35 }
36 return new MapsEventListener(instance, eventName, handler, MapsEventListener.DOM_EVENT);
37 };
38 /**
39 * 添加DOM事件监听函数,函数仅执行一次
40 * @param {HTMLElement} element DOM元素
41 * @param {String} event 事件名称
42 * @param {Function} handler 事件处理函数
43 * @returns {MapsEventListener} 事件监听对象
44 */
45 BMapLib.EventWrapper.addDomListenerOnce = function(instance, eventName, handler) {
46 var eventListener = EventWrapper['addDomListener'](instance, eventName, function(){
47 // 移除
48 EventWrapper['removeListener'](eventListener);
49 return handler.apply(this, arguments);
50 });
51 return eventListener;
52 };
53 /**
54 * 添加地图事件监听函数
55 * @param {Object} instance 实例
56 * @param {String} event 事件名称
57 * @param {Function} handler 事件处理函数
58 * @returns {MapsEventListener} 事件监听对象
59 */
60 BMapLib.EventWrapper.addListener = function(instance, eventName, handler) {
61 instance.addEventListener(eventName, handler);
62 return new MapsEventListener(instance, eventName, handler, MapsEventListener.MAP_EVENT);
63 };
64 /**
65 * 添加地图事件监听函数,函数仅执行一次
66 * @param {Object} instance 需要监听的实例
67 * @param {String} event 事件名称
68 * @param {Function} handler 事件处理函数
69 * @returns {MapsEventListener} 事件监听对象
70 */
71 BMapLib.EventWrapper.addListenerOnce = function(instance, eventName, handler){
72 var eventListener = EventWrapper['addListener'](instance, eventName, function(){
73 // 移除
74 EventWrapper['removeListener'](eventListener);
75 return handler.apply(this, arguments);
76 });
77 return eventListener;
78 };
79 /**
80 * 移除特定实例的所有事件的所有监听函数
81 * @param {Object} instance 需要移除所有事件监听的实例
82 * @returns {None}
83 */
84 BMapLib.EventWrapper.clearInstanceListeners = function(instance) {
85 var listeners = instance._e_ || {};
86 for (var i in listeners) {
87 EventWrapper['removeListener'](listeners[i]);
88 }
89 instance._e_ = {};
90 };
91 /**
92 * 移除特定实例特定事件的所有监听函数
93 * @param {Object} instance 需要移除特定事件监听的实例
94 * @param {String} event 需要移除的事件名
95 * @returns {None}
96 */
97 BMapLib.EventWrapper.clearListeners = function(instance, eventName) {
98 var listeners = instance._e_ || {};
99 for (var i in listeners) {
100 if (listeners[i]._eventName == eventName) {
101 EventWrapper['removeListener'](listeners[i]);
102 }
103 }
104 };
105 /**
106 * 移除特定的事件监听函数
107 * @param {MapsEventListener} listener 需要移除的事件监听对象
108 * @returns {None}
109 */
110 BMapLib.EventWrapper.removeListener = function(listener) {
111 var instance = listener._instance;
112 var eventName = listener._eventName;
113 var handler = listener._handler;
114 var listeners = instance._e_ || {};
115 for (var i in listeners) {
116 if (listeners[i]._guid == listener._guid) {
117 if (listener._eventType == MapsEventListener.DOM_EVENT) {
118 // DOM事件
119 if (instance.removeEventListener) {
120 instance.removeEventListener(eventName, handler, false);
121 }
122 else if (instance.detachEvent) {
123 instance.detachEvent('on' + eventName, handler);
124 }
125 else {
126 instance['on' + eventName] = null;
127 }
128 }
129 else if (listener._eventType == MapsEventListener.MAP_EVENT) {
130 // 地图事件
131 instance.removeEventListener(eventName, handler);
132 }
133 delete listeners[i];
134 }
135 }
136 };
137 /**
138 * 触发特定事件
139 * @param {Object} instance 触发事件的实例对象
140 * @param {String} event 触发事件的名称
141 * @param {Object} args 自定义事件参数,可选
142 * @returns {None}
143 */
144 BMapLib.EventWrapper.trigger = function(instance, eventName) {
145 var listeners = instance._e_ || {};
146 for (var i in listeners) {
147 if (listeners[i]._eventName == eventName) {
148 var args = Array.prototype.slice.call(arguments, 2);
149 listeners[i]._handler.apply(instance, args);
150 }
151 }
152 };
153
154 /**
155 * 事件监听类
156 * @constructor
157 * @ignore
158 * @private
159 * @param {Object} 对象实例
160 * @param {string} 事件名称
161 * @param {Function} 事件监听函数
162 * @param {EventTypes} 事件类型
163 */
164 function MapsEventListener(instance, eventName, handler, eventType){
165 this._instance = instance;
166 this._eventName = eventName;
167 this._handler = handler;
168 this._eventType = eventType;
169 this._guid = MapsEventListener._guid ++;
170 this._instance._e_ = this._instance._e_ || {};
171 this._instance._e_[this._guid] = this;
172 }
173 MapsEventListener._guid = 1;
174
175 MapsEventListener.DOM_EVENT = 1;
176 MapsEventListener.MAP_EVENT = 2;
177
178 })();
/**
*
* @author Baidu Map Api Group
* @version 1.2
*/
(function (root, factory) {
if (typeof exports === 'object') {
module.exports = { default: factory(), EventListener: factory() }
} else if (typeof define === 'function' && define.amd) {
define(factory);
} else {
root.BMapLib = root.BMapLib || {};
root.BMapLib.EventWrapper = root.BMapLib.EventWrapper || factory();
}
})(this, function () {
window['BMapLib'] = window['BMapLib'] || {};
window['BMapLib']['EventWrapper'] = window['BMapLib']['EventWrapper'] || {};
var EventWrapper = window['BMapLib']['EventWrapper'];
EventWrapper['addDomListener'] = function (instance, eventName, handler) {
if (instance.addEventListener) {
instance.addEventListener(eventName, handler, false);
}
else if (instance.attachEvent) {
instance.attachEvent('on' + eventName, handler);
}
else {
instance['on' + eventName] = handler;
}
return new MapsEventListener(instance, eventName, handler, MapsEventListener.DOM_EVENT);
};
EventWrapper['addDomListenerOnce'] = function (instance, eventName, handler) {
var eventListener = EventWrapper['addDomListener'](instance, eventName, function () {
EventWrapper['removeListener'](eventListener);
return handler.apply(this, arguments);
});
return eventListener;
};
EventWrapper['addListener'] = function (instance, eventName, handler) {
instance.addEventListener(eventName, handler);
return new MapsEventListener(instance, eventName, handler, MapsEventListener.MAP_EVENT);
};
EventWrapper['addListenerOnce'] = function (instance, eventName, handler) {
var eventListener = EventWrapper['addListener'](instance, eventName, function () {
EventWrapper['removeListener'](eventListener);
return handler.apply(this, arguments);
});
return eventListener;
};
EventWrapper['clearInstanceListeners'] = function (instance) {
var listeners = instance._e_ || {};
for (var i in listeners) {
EventWrapper['removeListener'](listeners[i]);
}
instance._e_ = {};
};
EventWrapper['clearListeners'] = function (instance, eventName) {
var listeners = instance._e_ || {};
for (var i in listeners) {
if (listeners[i]._eventName == eventName) {
EventWrapper['removeListener'](listeners[i]);
}
}
};
EventWrapper['removeListener'] = function (listener) {
var instance = listener._instance;
var eventName = listener._eventName;
var handler = listener._handler;
var listeners = instance._e_ || {};
for (var i in listeners) {
if (listeners[i]._guid == listener._guid) {
if (listener._eventType == MapsEventListener.DOM_EVENT) {
if (instance.removeEventListener) {
instance.removeEventListener(eventName, handler, false);
}
else if (instance.detachEvent) {
instance.detachEvent('on' + eventName, handler);
}
else {
instance['on' + eventName] = null;
}
}
else if (listener._eventType == MapsEventListener.MAP_EVENT) {
instance.removeEventListener(eventName, handler);
}
delete listeners[i];
}
}
};
EventWrapper['trigger'] = function (instance, eventName) {
var listeners = instance._e_ || {};
for (var i in listeners) {
if (listeners[i]._eventName == eventName) {
var args = Array.prototype.slice.call(arguments, 2);
listeners[i]._handler.apply(instance, args);
}
}
};
function MapsEventListener(instance, eventName, handler, eventType) {
this._instance = instance;
this._eventName = eventName;
this._handler = handler;
this._eventType = eventType;
this._guid = MapsEventListener._guid++;
this._instance._e_ = this._instance._e_ || {};
this._instance._e_[this._guid] = this;
}
MapsEventListener._guid = 1;
MapsEventListener.DOM_EVENT = 1;
MapsEventListener.MAP_EVENT = 2;
return EventWrapper;
});
{
"name": "h21-map-event-wrapper-baidu",
"version": "1.0.4",
"description": "",
"version": "1.0.5",
"description": "A library of Baidu Map JS API",
"main": "index.js",

@@ -9,4 +9,15 @@ "scripts": {

},
"repository": {
"type": "git",
"url": "git+https://github.com/novakand/h21-map-event-wrapper-baidu"
},
"keywords": [
"baidu",
"baidu-map",
"angular",
"event-wrapper"
],
"author": "",
"license": ""
"license": "",
"homepage": ""
}
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc