Changeset 7063
- Timestamp:
- 06/19/07 16:35:03 (1 year ago)
- Files:
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
spinoffs/prototype/branches/event/src/event.js
r7062 r7063 96 96 } 97 97 } else { 98 if (this.element == document && (B.Opera || B.Safari)) this._element = window; 98 if (B.Opera || B.Safari) { 99 if (this.element == document) this._element = window; 100 } 101 else if (this.element == window) this._element = document; 99 102 // Opera handler is similar to IE's 100 103 this._callback = B.Opera ? function(event) { spinoffs/prototype/branches/event/test/functional/dom_ready.html
r6596 r7063 3 3 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> 4 4 <head> 5 <title>Prototype onReady test</title>5 <title>Prototype Event.onReady() test file</title> 6 6 <meta http-equiv="content-type" content="text/html; charset=utf-8" /> 7 8 <!-- I hate doing "rake dist" while testing --> 9 <script type="text/javascript"> 10 var Prototype = { 11 Version: 'inline', 12 13 Browser: { 14 IE: !!(window.attachEvent && !window.opera), 15 Opera: !!window.opera, 16 WebKit: navigator.userAgent.indexOf('AppleWebKit/') > -1, 17 Gecko: navigator.userAgent.indexOf('Gecko') > -1 && navigator.userAgent.indexOf('KHTML') == -1 18 }, 19 BrowserFeatures: { 20 XPath: !!document.evaluate, 21 ElementExtensions: !!window.HTMLElement, 22 SpecificElementExtensions: 23 (document.createElement('div').__proto__ !== 24 document.createElement('form').__proto__) 25 }, 26 27 ScriptFragment: '(?:<script.*?>)((\n|\r|.)*?)(?:<\/script>)', 28 emptyFunction: function() {}, 29 K: function(x) { return x } 30 } 31 </script> 32 <script src="../../src/base.js" type="text/javascript"></script> 33 <script src="../../src/string.js" type="text/javascript"></script> 34 <script src="../../src/enumerable.js" type="text/javascript"></script> 35 <script src="../../src/array.js" type="text/javascript"></script> 36 <script src="../../src/hash.js" type="text/javascript"></script> 37 <script src="../../src/range.js" type="text/javascript"></script> 38 <script src="../../src/ajax.js" type="text/javascript"></script> 39 <script src="../../src/dom.js" type="text/javascript"></script> 40 <script src="../../src/selector.js" type="text/javascript"></script> 41 <script src="../../src/form.js" type="text/javascript"></script> 42 <script src="../../src/event.js" type="text/javascript"></script> 43 <script src="../../src/position.js" type="text/javascript"></script> 44 <script type="text/javascript"> Element.addMethods(); </script> 45 7 <script src="../../dist/prototype.js" type="text/javascript"></script> 46 8 <style type="text/css" media="screen"> 47 9 /* <![CDATA[ */ … … 56 18 /* ]]> */ 57 19 </style> 58 20 59 21 <script type="text/javascript"> 60 22 Event.observe(document, 'DOMContentLoaded', function(e) { … … 63 25 }); 64 26 </script> 27 65 28 </head> 66 29 <body> spinoffs/prototype/branches/event/test/unit/event.html
r7062 r7063 30 30 var target = $(document.body).down('h1'); 31 31 var para = $(document.body).down('p'); 32 var handler = function(e) { console.log("%s: %s", e.type, this) }; 32 var handler = function(e) { 33 if (window.console) 34 console.log("%s: %s", e.type, this); 35 else 36 alert(e.type + ' ' + Object.inspect(this)); 37 }; 38 39 var B = Prototype.Browser; 33 40 34 41 function ob(element) { … … 63 70 assert(ob(para)['click'][ID]); 64 71 65 assertUndefined(Event.stopObserving([target, para])) 72 assertUndefined(Event.stopObserving([target, para])); 66 73 assertEqual(0, Object.keys(ob(target)['click']).length); 67 74 assertEqual(0, Object.keys(ob(para)['click']).length); 68 75 }}, 76 77 testObserveMultipleEvents: function() { with(this) { 78 assertEqual(handler, Event.observe(target, $w('click mouseup'), handler)); 79 var ID = guid(handler); 80 assert(ob(target)['click'][ID]); 81 assert(ob(target)['mouseup'][ID]); 82 83 assertUndefined(Event.stopObserving(target)); 84 assertEqual(0, Object.keys(ob(target)['click']).length); 85 assertEqual(0, Object.keys(ob(target)['mouseup']).length); 86 }}, 87 88 testMouseWheel: function() { with(this) { 89 // window, 'mousewheel' 90 assertEqual(handler, Event.observe(window, 'mousewheel', handler)); 91 var ID = guid(handler); 92 assertEqual((B.Opera || B.Safari ? window : document), ob(window)['mousewheel'][ID]._element); 93 assertEqual((B.Opera || B.IE ? 'mousewheel' : 'DOMMouseScroll'), ob(window)['mousewheel'][ID]._type); 94 assertUndefined(Event.stopObserving(window, 'mousewheel')); 95 assertEqual(0, Object.keys(ob(window)['mousewheel']).length); 96 97 // document, 'DOMMouseScroll' 98 assertEqual(handler, Event.observe(document, 'DOMMouseScroll', handler)); 99 assertEqual((B.Opera || B.Safari ? window : document), ob(document)['DOMMouseScroll'][ID]._element); 100 assertEqual((B.Opera || B.IE ? 'mousewheel' : 'DOMMouseScroll'), ob(document)['DOMMouseScroll'][ID]._type); 101 assertUndefined(Event.stopObserving(document, 'DOMMouseScroll')); 102 assertEqual(0, Object.keys(ob(document)['DOMMouseScroll']).length); 103 }}, 104 105 testOnReady: function() { with(this) { 106 if (!B.IE) { 107 var stat; 108 Event.observe(document, 'DOMContentLoaded', function() { stat = 'hello!' }); 109 assertUndefined(stat); 110 assertUndefined(ob(document)['DOMContentLoaded']); 111 wait(100, function() { 112 assertUndefined(stat); 113 }); 114 } else { 115 assert(false, 'IE onReady hack and this test suite won\'t play together :('); 116 } 117 }} 69 118 70 119 }, 'testlog');