UNPKG

1.09 kBJavaScriptView Raw
1/*syn@0.14.0#typeable*/
2define([
3 'require',
4 'exports',
5 'module',
6 './synthetic'
7], function (require, exports, module) {
8 var syn = require('./synthetic');
9 var typeables = [];
10 var __indexOf = [].indexOf || function (item) {
11 for (var i = 0, l = this.length; i < l; i++) {
12 if (i in this && this[i] === item) {
13 return i;
14 }
15 }
16 return -1;
17 };
18 syn.typeable = function (fn) {
19 if (__indexOf.call(typeables, fn) === -1) {
20 typeables.push(fn);
21 }
22 };
23 syn.typeable.test = function (el) {
24 for (var i = 0, len = typeables.length; i < len; i++) {
25 if (typeables[i](el)) {
26 return true;
27 }
28 }
29 return false;
30 };
31 var type = syn.typeable;
32 var typeableExp = /input|textarea/i;
33 type(function (el) {
34 return typeableExp.test(el.nodeName);
35 });
36 type(function (el) {
37 return __indexOf.call([
38 '',
39 'true'
40 ], el.getAttribute('contenteditable')) !== -1;
41 });
42});
\No newline at end of file