Пример #1
0
        doStop: function (finish) {
            var self = this,
                node = self.node,
                elStyle = node.style,
                _propsData = self._propsData,
                propList = [],
                clear,
                propsCss = {};

            Event.detach(node, TRANSITION_END_EVENT, self._onTransitionEnd, self);
            S.each(_propsData, function (propData, prop) {
                if (!finish) {
                    propsCss[prop] = Dom.css(node, prop);
                }
                propList.push(prop);
            });

            // firefox need set transition and need set none
            clear = S.trim(elStyle[TRANSITION]
                    .replace(new RegExp('(^|,)' + '\\s*(?:' + propList.join('|') + ')\\s+[^,]+', 'gi'),
                        '$1'))
                .replace(/^,|,,|,$/g, '') || 'none';

            elStyle[TRANSITION] = clear;
            Dom.css(node, propsCss);
        }
Пример #2
0
 runs(function () {
     Event.detach('#event-test-data');
     ok = 0;
     Event.on('#event-test-data', 'click', function (e) {
         expect(e.isDefaultPrevented()).toBe(false);
         ok = 1;
     });
     jasmine.simulate(Dom.get('#link-g'), 'click');
 });
Пример #3
0
 function _onLoad() {
     var self = this,
         c = self.io.config,
         uri = c.uri,
         hostname = uri.getHostname(),
         iframeDesc = iframeMap[hostname];
     iframeDesc.ready = 1;
     Event.detach(iframeDesc.iframe, 'load', _onLoad, self);
     self.send();
 }
Пример #4
0
 function _onLoad() {
   _$jscoverage['/io/sub-domain-transport.js'].functionData[3]++;
   _$jscoverage['/io/sub-domain-transport.js'].lineData[77]++;
   var self = this, c = self.io.config, uri = c.uri, hostname = uri.getHostname(), iframeDesc = iframeMap[hostname];
   _$jscoverage['/io/sub-domain-transport.js'].lineData[82]++;
   iframeDesc.ready = 1;
   _$jscoverage['/io/sub-domain-transport.js'].lineData[83]++;
   Event.detach(iframeDesc.iframe, 'load', _onLoad, self);
   _$jscoverage['/io/sub-domain-transport.js'].lineData[84]++;
   self.send();
 }
Пример #5
0
 }, doStop:function(finish) {
   var self = this, node = self.node, elStyle = node.style, _propsData = self._propsData, propList = [], clear, propsCss = {};
   Event.detach(node, TRANSITION_END_EVENT, self._onTransitionEnd, self);
   S.each(_propsData, function(propData, prop) {
     if(!finish) {
       propsCss[prop] = Dom.css(node, prop)
     }
     propList.push(prop)
   });
   clear = S.trim(elStyle[TRANSITION].replace(new RegExp("(^|,)" + "\\s*(?:" + propList.join("|") + ")\\s+[^,]+", "gi"), "$1")).replace(/^,|,,|,$/g, "") || "none";
   elStyle[TRANSITION] = clear;
   Dom.css(node, propsCss)
 }});
Пример #6
0
Файл: io.js Проект: myoss/kissy
 }, _callback:function(event) {
   var self = this, form = self.form, io = self.io, eventType = event.type, iframeDoc, iframe = io.iframe;
   if(!iframe) {
     return
   }
   if(eventType === "abort" && S.UA.ie === 6) {
     setTimeout(function() {
       Dom.attr(form, self.attrs)
     }, 0)
   }else {
     Dom.attr(form, self.attrs)
   }
   removeFieldsFromData(this.fields);
   Event.detach(iframe);
   setTimeout(function() {
     Dom.remove(iframe)
   }, BREATH_INTERVAL);
   io.iframe = null;
   if(eventType === "load") {
     try {
       iframeDoc = iframe.contentWindow.document;
       if(iframeDoc && iframeDoc.body) {
         io.responseText = Dom.html(iframeDoc.body);
         if(S.startsWith(io.responseText, "<?xml")) {
           io.responseText = undefined
         }
       }
       if(iframeDoc && iframeDoc.XMLDocument) {
         io.responseXML = iframeDoc.XMLDocument
       }else {
         io.responseXML = iframeDoc
       }
       if(iframeDoc) {
         io._ioReady(OK_CODE, "success")
       }else {
         io._ioReady(ERROR_CODE, "parser error")
       }
     }catch(e) {
       io._ioReady(ERROR_CODE, "parser error")
     }
   }else {
     if(eventType === "error") {
       io._ioReady(ERROR_CODE, "error")
     }
   }
 }, abort:function() {
Пример #7
0
        it('should guarantee separate event adding function keeps separate context with multiple event.', function () {
            Event.detach(doc);
            var re = [];

            Event.on(doc, 'click keydown', handler, {id: FIRST});
            Event.on(doc, 'click keydown', handler, {id: SECOND});
            function handler() {
                re.push(this.id);
            }

            // click the document twice
            runs(function () {
                simulate(doc, 'click');
            });
            waits(10);
            runs(function () {
                simulate(doc, 'keydown');
            });
            waits(10);
            runs(function () {
                expect(re).toEqual([FIRST, SECOND, FIRST, SECOND]);
            });
        });
Пример #8
0
        it('should remove the specified event handler function and context.', function () {
            var f = Dom.get('#link-f');

            Event.detach(f);

            var result = [], context = {};

            function foo() {
                result = HAPPENED;
            }

            Event.on(f, 'click', foo, context);

            Event.remove(f, 'click', foo, context);

            // click f
            result = null;
            simulate(f, 'click');
            waits(0);
            runs(function () {
                expect(result).toBeNull();
            });
        });
Пример #9
0
  doStop: function(finish) {
  _$jscoverage['/transition.js'].functionData[11]++;
  _$jscoverage['/transition.js'].lineData[139]++;
  var self = this, node = self.node, elStyle = node.style, _propsData = self._propsData, propList = [], clear, propsCss = {};
  _$jscoverage['/transition.js'].lineData[147]++;
  Event.detach(node, TRANSITION_END_EVENT, self._onTransitionEnd, self);
  _$jscoverage['/transition.js'].lineData[148]++;
  S.each(_propsData, function(propData, prop) {
  _$jscoverage['/transition.js'].functionData[12]++;
  _$jscoverage['/transition.js'].lineData[149]++;
  if (visit12_149_1(!finish)) {
    _$jscoverage['/transition.js'].lineData[150]++;
    propsCss[prop] = Dom.css(node, prop);
  }
  _$jscoverage['/transition.js'].lineData[152]++;
  propList.push(prop);
});
  _$jscoverage['/transition.js'].lineData[156]++;
  clear = visit13_159_1(S.trim(elStyle[TRANSITION].replace(new RegExp('(^|,)' + '\\s*(?:' + propList.join('|') + ')\\s+[^,]+', 'gi'), '$1')).replace(/^,|,,|,$/g, '') || 'none');
  _$jscoverage['/transition.js'].lineData[161]++;
  elStyle[TRANSITION] = clear;
  _$jscoverage['/transition.js'].lineData[162]++;
  Dom.css(node, propsCss);
}});
Пример #10
0
 exports.stop = function () {
     started = false;
     DomEvent.detach(win, 'hashchange', onHashChange);
     DomEvent.detach(win, 'popstate', onPopState);
 };
Пример #11
0
        _callback: function (event) {
            var self = this,
                form = self.form,
                io = self.io,
                eventType = /**
                 @type String
                 @ignore*/event.type,
                iframeDoc,
                iframe = io.iframe;

            // 防止重复调用 , 成功后 abort
            if (!iframe) {
                return;
            }

            // ie6 立即设置 action 设置为空导致白屏
            if (eventType === 'abort' && UA.ie === 6) {
                setTimeout(function () {
                    Dom.attr(form, self.attrs);
                }, 0);
            } else {
                Dom.attr(form, self.attrs);
            }

            removeFieldsFromData(this.fields);

            Event.detach(iframe);

            setTimeout(function () {
                // firefox will keep loading if not set timeout
                Dom.remove(iframe);
            }, BREATH_INTERVAL);

            // nullify to prevent memory leak?
            io.iframe = null;

            if (eventType === 'load') {

                try {
                    iframeDoc = iframe.contentWindow.document;
                    // ie<9
                    if (iframeDoc && iframeDoc.body) {
                        // https://github.com/kissyteam/kissy/issues/304
                        io.responseText = Dom.html(iframeDoc.body);
                        // ie still can retrieve xml 's responseText
                        if (util.startsWith(io.responseText, '<?xml')) {
                            io.responseText = undefined;
                        }
                    }
                    // ie<9
                    // http://help.dottoro.com/ljbcjfot.php
                    // http://msdn.microsoft.com/en-us/library/windows/desktop/ms766512(v=vs.85).aspx
                    /*
                     In Internet Explorer, XML documents can also be embedded into HTML documents with the xml HTML elements.
                     To get an XMLDocument object that represents the embedded XML data island,
                     use the XMLDocument property of the xml element.
                     Note that the support for the XMLDocument property has been removed in Internet Explorer 9.
                     */
                    if (iframeDoc && iframeDoc.XMLDocument) {
                        io.responseXML = iframeDoc.XMLDocument;
                    } else {
                        // ie9 firefox chrome
                        io.responseXML = iframeDoc;
                    }
                    if (iframeDoc) {
                        io._ioReady(OK_CODE, 'success');
                    } else {
                        // chrome does not throw exception:
                        // Unsafe JavaScript attempt to access frame with URL upload.jss from frame with URL test.html.
                        // Domains, protocols and ports must match.
                        // chrome will get iframeDoc to null
                        // so this error is parser error to normalize all browsers
                        io._ioReady(ERROR_CODE, 'parser error');
                    }
                } catch (e) {
                    // #245 submit to a  cross domain page except chrome
                    io._ioReady(ERROR_CODE, 'parser error');
                }
            } else if (eventType === 'error') {
                io._ioReady(ERROR_CODE, 'error');
            }
        },
Пример #12
0
 exports.stop = function() {
   started = false;
   DomEvent.detach(win, "popstate hashchange", dispatch)
 }
Пример #13
0
  _callback: function(event) {
  _$jscoverage['/io/iframe-transport.js'].functionData[11]++;
  _$jscoverage['/io/iframe-transport.js'].lineData[159]++;
  var self = this, form = self.form, io = self.io, eventType = event.type, iframeDoc, iframe = io.iframe;
  _$jscoverage['/io/iframe-transport.js'].lineData[169]++;
  if (visit55_169_1(!iframe)) {
    _$jscoverage['/io/iframe-transport.js'].lineData[170]++;
    return;
  }
  _$jscoverage['/io/iframe-transport.js'].lineData[174]++;
  if (visit56_174_1(visit57_174_2(eventType === 'abort') && visit58_174_3(UA.ie === 6))) {
    _$jscoverage['/io/iframe-transport.js'].lineData[175]++;
    setTimeout(function() {
  _$jscoverage['/io/iframe-transport.js'].functionData[12]++;
  _$jscoverage['/io/iframe-transport.js'].lineData[176]++;
  Dom.attr(form, self.attrs);
}, 0);
  } else {
    _$jscoverage['/io/iframe-transport.js'].lineData[179]++;
    Dom.attr(form, self.attrs);
  }
  _$jscoverage['/io/iframe-transport.js'].lineData[182]++;
  removeFieldsFromData(this.fields);
  _$jscoverage['/io/iframe-transport.js'].lineData[184]++;
  Event.detach(iframe);
  _$jscoverage['/io/iframe-transport.js'].lineData[186]++;
  setTimeout(function() {
  _$jscoverage['/io/iframe-transport.js'].functionData[13]++;
  _$jscoverage['/io/iframe-transport.js'].lineData[188]++;
  Dom.remove(iframe);
}, BREATH_INTERVAL);
  _$jscoverage['/io/iframe-transport.js'].lineData[192]++;
  io.iframe = null;
  _$jscoverage['/io/iframe-transport.js'].lineData[194]++;
  if (visit59_194_1(eventType === 'load')) {
    _$jscoverage['/io/iframe-transport.js'].lineData[196]++;
    try {
      _$jscoverage['/io/iframe-transport.js'].lineData[197]++;
      iframeDoc = iframe.contentWindow.document;
      _$jscoverage['/io/iframe-transport.js'].lineData[199]++;
      if (visit60_199_1(iframeDoc && iframeDoc.body)) {
        _$jscoverage['/io/iframe-transport.js'].lineData[201]++;
        io.responseText = Dom.html(iframeDoc.body);
        _$jscoverage['/io/iframe-transport.js'].lineData[203]++;
        if (visit61_203_1(util.startsWith(io.responseText, '<?xml'))) {
          _$jscoverage['/io/iframe-transport.js'].lineData[204]++;
          io.responseText = undefined;
        }
      }
      _$jscoverage['/io/iframe-transport.js'].lineData[216]++;
      if (visit62_216_1(iframeDoc && iframeDoc.XMLDocument)) {
        _$jscoverage['/io/iframe-transport.js'].lineData[217]++;
        io.responseXML = iframeDoc.XMLDocument;
      } else {
        _$jscoverage['/io/iframe-transport.js'].lineData[220]++;
        io.responseXML = iframeDoc;
      }
      _$jscoverage['/io/iframe-transport.js'].lineData[222]++;
      if (visit63_222_1(iframeDoc)) {
        _$jscoverage['/io/iframe-transport.js'].lineData[223]++;
        io._ioReady(OK_CODE, 'success');
      } else {
        _$jscoverage['/io/iframe-transport.js'].lineData[230]++;
        io._ioReady(ERROR_CODE, 'parser error');
      }
    }    catch (e) {
  _$jscoverage['/io/iframe-transport.js'].lineData[234]++;
  io._ioReady(ERROR_CODE, 'parser error');
}
  } else {
    _$jscoverage['/io/iframe-transport.js'].lineData[236]++;
    if (visit64_236_1(eventType === 'error')) {
      _$jscoverage['/io/iframe-transport.js'].lineData[237]++;
      io._ioReady(ERROR_CODE, 'error');
    }
  }
}, 
Пример #14
0
        it('call remove event from descendants', function () {

            var bar = Dom.get('#bar'),
                foo = Dom.get('#foo'),
                bard = 0,
                bard1 = 0,
                food = 0,
                food1 = 0;

            Event.on(bar, {
                'o': {
                    fn: function () {
                        bard = 1;
                    }
                },
                'o1': {
                    fn: function () {
                        bard1 = 1;
                    }
                }
            });

            Event.on(foo, {
                'w': {
                    fn: function () {
                        food = 1;
                    }
                },
                'w1': {
                    fn: function () {
                        food1 = 1;
                    }
                }
            });

            Event.fire(bar, 'o');
            Event.fire(foo, 'w');
            Event.fire(bar, 'o1');
            Event.fire(foo, 'w1');

            expect(bard).toBe(1);
            expect(food).toBe(1);
            expect(bard1).toBe(1);
            expect(food1).toBe(1);

            bard = 0;
            food = 0;
            bard1 = 0;
            food1 = 0;

            Event.detach(foo, {
                'o': {
                    deep: true
                },
                'w': {
                    deep: true
                }
            });

            Event.fire(bar, 'o');
            Event.fire(foo, 'w');
            Event.fire(bar, 'o1');
            Event.fire(foo, 'w1');

            expect(bard).toBe(0);
            expect(food).toBe(0);
            expect(bard1).toBe(1);
            expect(food1).toBe(1);

            bard = 0;
            food = 0;
            bard1 = 0;
            food1 = 0;

            Event.detach(foo, {
                '': {
                    deep: true
                }
            });

            Event.fire(bar, 'o');
            Event.fire(foo, 'w');
            Event.fire(bar, 'o1');
            Event.fire(foo, 'w1');

            expect(bard).toBe(0);
            expect(food).toBe(0);
            expect(bard1).toBe(0);
            expect(food1).toBe(0);

        });