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