Commit Graph

291 Commits

Author SHA1 Message Date
Andrew Dupont 03c1530014 Integrate support for the W3C Selectors API into the Selector class. Will now use the API when possible (browser supports the API *and* recognizes the given selector). Means minor changes to the semantics of :enabled, :disabled, and :empty in order to comply with CSS spec. 2008-03-27 01:18:15 -05:00
Tobie Langel 855e27311d prototype: Avoid re-extending element in Element#getDimensions. 2008-03-19 14:04:52 +00:00
Tobie Langel 598387f137 prototype: Prevent Hash#toQueryString from serializing objets. 2008-03-19 13:01:47 +00:00
Tobie Langel 32b1b6b7cd prototype: Fix Event#pointer in IE standard mode. Closes #9920. 2008-03-19 07:01:49 +00:00
Andrew Dupont 6a2d81ce62 Fixed an improperly-encoded apostrophe in a comment. 2008-03-17 15:59:58 +00:00
Tobie Langel 6bae548e0a prototype: Refactor String#escapeHTML to avoid using the with statement. 2008-03-16 19:08:34 +00:00
Tobie Langel addfdef8ff prototype: Make Element#writeAttribute handle frameborder attribute in IE. Closes #11068. 2008-03-09 08:05:29 +00:00
Tobie Langel 359e8810de prototype: Minor clean-up of selector.js. Closes #10844. 2008-03-09 07:27:02 +00:00
Tobie Langel c7e0a3d93c prototype: Make String#unescapeHTML strip tags in IE. Closes #10173. 2008-03-09 07:21:45 +00:00
Tobie Langel 5a50e4d2c0 prototype: Performance improvements for Enumerables. Closes #11264. 2008-03-09 06:56:03 +00:00
Tobie Langel 5630369f42 prototype: Make Prototype tagName comparisons XHTML-compliant. Closes #11012, #11013, #11014. 2008-02-05 03:35:04 +00:00
Tobie Langel 7821b989fe prototype: Avoid breaking Element.prototype in browsers which support it. Closes #11004. 2008-02-04 23:22:18 +00:00
Tobie Langel 2830ac2ac5 prototype: Prevent Element#cumulativeOffset, Element#getOffsetParent, Element#positionedOffset, Element#viewportOffset and Element#clonePosition from throwing an error in IE when called on a parent-less element. Closes #9416, #10192, #10248. 2008-02-03 22:29:29 +00:00
Tobie Langel d770a6c704 prototype: Prevent Enumerable#eachSlice from entering into an endless loop if passed an argument smaller than 1. Closes #10665. 2008-02-03 21:08:13 +00:00
Tobie Langel f4d68350f3 prototype: Allow Selector to correctly detect the presence of namespaced attributes. Closes #10987. 2008-02-03 19:45:32 +00:00
Tobie Langel ea9d81eea1 prototype: Make Element#absolutize and Element#relativize always return element. Closes #10983. 2008-02-03 19:36:35 +00:00
Andrew Dupont c24a390c49 Ensure positionedOffset properly considers "position: fixed" elements. Also ensure IE reports offsets correctly by triggering hasLayout when a "static" element has a "fixed" element as an offset parent. Closes #10644. [heygrady, kangax, Andrew Dupont] 2008-01-25 22:02:12 +00:00
Andrew Dupont ffa0d0943c Roll back the fix for #9609, since it does not work in Opera. Instead, avoid using "valueOf" or "toString" as field names in forms. 2008-01-25 18:54:22 +00:00
Andrew Dupont a1ec25cddb Prevent DOM node expandos _countedByPrototype and _prototypeEventID from being serialized into (inner|outer)HTML in IE. Closes #10909. [dcpedit, Tobie Langel, Andrew Dupont] 2008-01-25 18:49:40 +00:00
Tobie Langel 794457da75 Make Ajax.Request#isSameOrigin JavaScript Lint compliant. Backport fix to 1.5.1.2. 2008-01-24 03:02:34 +00:00
Andrew Dupont 0f97f4ce20 Properly serialize form fields with names that collide with built-in JS properties (like "length" or "toString"). Closes #9609. [gryn, kangax] 2008-01-24 02:24:33 +00:00
Tobie Langel 17cd2f9f8d prototype: Make Object.isArray correctly identify arrays created in another frame. Closes #10374. 2008-01-24 01:33:28 +00:00
Andrew Dupont 7942a9e5c9 Fixed issue where Element#match failed on attribute selectors with single or double quotes. Closes #10067. [Cezary Okupski, Andrew Dupont] 2008-01-23 20:05:17 +00:00
Tobie Langel b26f4e349e prototype: Fix Element#writeAttribute to work with 'cellspacing' and 'cellpadding' attributes in IE. Closes #9983. 2008-01-23 12:17:26 +00:00
Tobie Langel 02cc9992e9 prototype: Prevent a potential security issue for cross-site ajax requests. 2008-01-23 00:51:25 +00:00
Tobie Langel dcada47c6d prototype: Test for attribute existence before applying more complex CSS3 selectors. Closes #10870. 2008-01-23 00:33:04 +00:00
Andrew Dupont c200c27f48 Fix "function $A" declaration inside of a conditional (confuses IE). Fixes #10882. [Jacco, Andrew Dupont] 2008-01-22 23:36:47 +00:00
Andrew Dupont c67fe0b2f3 Fixed selector parsing so that "#foo [bar=baz]" is treated the same way as "#foo *[bar=baz]". Closes #10734. [jlukas, kangax, Andrew Dupont] 2008-01-18 04:52:38 +00:00
Andrew Dupont 89cbe08e1c Fix Element#descendantOf logic in IE. Closes #10413. [martymix, kamil.szot] 2008-01-18 04:31:23 +00:00
Tobie Langel 7052c5a60c prototype: Fix missing var in Element#insert. Closes #10838. 2008-01-17 16:41:34 +00:00
Tobie Langel 7cd956d9c4 prototype: Remove useless binding in Template#evaluate. 2008-01-14 01:38:28 +00:00
Tobie Langel ac48714ada prototype: Make Object.inspect more robust. 2008-01-14 01:22:37 +00:00
Tobie Langel a246e777f5 prototype: Fix Selector.matchElements to allow for coma-separated selectors in Element#up/next/previous and Event#findElement. 2008-01-06 21:49:16 +00:00
Tobie Langel 0008fe4aed prototype: Test.Unit refactoring. Allow running multiple instances of Test.Unit.Runner on the same page. Allow rake to run specific testcases. Closes #10704, #10705, #10706. 2008-01-06 00:34:39 +00:00
Tobie Langel 7c86e29805 prototype: Optimize property detection of outerHTML. Avoids triggering FOUC in Safari 3.0.4. Closes #10702. 2008-01-04 23:56:27 +00:00
Tobie Langel 6f0def19c5 prototype: Add document.loaded, a boolean that is set to true once dom:loaded is fired. 2008-01-04 00:30:53 +00:00
Tobie Langel b4735bca7c prototype: Make Element#insert standard-compliant. Fixes an issue in FF3b2 when inserting HTML or text inside DOM nodes which aren't (yet) appended to the document. 2008-01-03 01:50:36 +00:00
Tobie Langel f553d2210e prototype: Add some missing semicolons to the source tree. Closes #10659. 2007-12-31 16:16:14 +00:00
Tobie Langel c9a07576be prototype: Ensure Ajax.Response#getHeader returns null for missing headers in Opera. 2007-12-30 10:59:23 +00:00
Tobie Langel f0d54a48bd prototype: Ensure Ajax.Response#getHeader returns null for missing headers. 2007-12-29 11:09:43 +00:00
Tobie Langel 5a37860ffb prototype: Ensure creates an empty array when its argument's length is undefined. Closes #10574 2007-12-20 15:47:32 +00:00
Tobie Langel 23f7cb642c prototype: Fix incorrect variable declaration in Event.fire. Closes #10329. 2007-12-20 13:10:42 +00:00
Andrew Dupont c691de7810 Fix the way Selector handles [pseudoclass + combinator] with no space in between. Closes #9696. [kangax, fearphage, Andrew Dupont] 2007-12-20 00:17:24 +00:00
Andrew Dupont cb239625b3 Optimize Element#up/down/next/previous. Closes #10353. [Dylan Bruzenak, Nick Stackenburg, Andrew Dupont] 2007-12-19 23:43:48 +00:00
Andrew Dupont 6f0e0ad649 Handle case-sensitivity in Selector tag names better. Closes #5052. [mexx, Andrew Dupont] 2007-12-19 23:32:21 +00:00
Andrew Dupont 4d3ebf0912 Change document.viewport.getDimensions to exclude scrollbars in all cases. Closes #10148, #9288. [Nick Stackenburg] 2007-12-04 04:28:27 +00:00
Andrew Dupont ae76169baf Add logic to Element#getStyle in Opera that fixes inaccurate reporting of computed 'width' and 'height' properties. [Andrew Dupont] 2007-12-04 04:03:56 +00:00
Sam Stephenson 769ae42fcc prototype: Ensure that an Ajax.Request's parameters option can be a Hash. Closes #10172. 2007-11-29 00:24:54 +00:00
Andrew Dupont c85285496b * Ensure no comment nodes are returned in Selector queries (IE improperly returns comment nodes on getElementsByTagName("*")). Change Element#descendants to use Element#getElementsBySelector in order to avoid this issue. Closes #10220. [Jeff Gobel, Andrew Dupont] 2007-11-27 18:43:56 +00:00
Andrew Dupont b01903d92f * Re-enable the XPath approach in Selector for Safari 3. Falls back to the non-XPath version when it sees a problematic token. [Andrew Dupont] 2007-11-27 18:21:50 +00:00
Andrew Dupont 26b8033295 * Fix a bug in the IE-specific Element#descendantOf logic. [Nicholas, Andrew Dupont] 2007-11-27 17:59:46 +00:00
Tobie Langel 23823048d1 prototype: Prevent memory leaks in Ajax.PeriodicalUpdater. Closes #10049 2007-11-15 23:14:36 +00:00
Tobie Langel c371096a71 prototype: Remove useless variable in Selector.handlers.child. Closes #10006. 2007-11-15 22:21:08 +00:00
Tobie Langel d20cc77e0c prototype: Don't redeclare previously declared variables. Closes #10007 2007-11-15 22:15:24 +00:00
Tobie Langel 07a16464e8 prototype: use Object.isUndefined where possible. 2007-11-15 21:53:15 +00:00
Tobie Langel b058e24a05 prototype: Make String#isJSON return false for empty or blank strings. Make Ajax.Response#responseJSON null when Ajax.Response#responseText is empty or blank. 2007-11-15 19:37:26 +00:00
Tobie Langel f8ffe7b40f prototype: Make Ajax.Response#_getResponseJSON use Ajax.Response#responseText. 2007-11-15 14:02:25 +00:00
Tobie Langel 74c005c678 prototype: Remove the now redundant forked declaration of Hash#_each. 2007-11-14 11:56:15 +00:00
Tobie Langel 0b6a6e2f2f prototype: Ensure Event#fire always returns an extended event. Make Event#findElement's expression argument optional. Perf optimizations for Event#findElement. 2007-11-13 21:48:09 +00:00
Sam Stephenson 9b78edb9de prototype: Fix Class#addMethods for "toString" and "valueOf" methods in Internet Explorer. Closes #9901. 2007-11-06 01:44:24 +00:00
Andrew Dupont b14c9afa58 Exclude Opera from using the sourceIndex approach in Element#descendantOf. [Tobie Langel, Andrew Dupont] 2007-11-05 17:54:13 +00:00
Tobie Langel d6b843c9cb Ensure Element#hasClassName always returns a boolean. Closes #10075. 2007-11-05 17:43:56 +00:00
Andrew Dupont 8cd85d12a2 Ensure selectors of the form "[href]" (attribute token with no preceding tag name) work properly. Closes #8870. [chao, kangax, Andrew Dupont] 2007-11-05 17:11:41 +00:00
Andrew Dupont e457edbcf4 Simplified the bitmask in Element#descendantOf. 2007-11-01 19:06:02 +00:00
Andrew Dupont 7cf17c7bec Performance optimizations for Element#descendantOf. Costliness should no longer be dependent on the difference in depth between the parent and the child. [Andrew Dupont] 2007-11-01 15:11:52 +00:00
Thomas Fuchs 916cbbaf4c Apply the workaround for the Firefox "blinking element" opacity=1 bug only to Firefox 1.5. 2007-10-29 23:06:15 +00:00
Andrew Dupont 67cf750956 Add event.stopped, a boolean that is set to when Event#stop is called. 2007-10-26 19:15:35 +00:00
Tobie Langel 4dece6b277 Use String#include wherever possible. 2007-10-22 22:16:32 +00:00
Tobie Langel 16127b024a prototype: In IE, allow opacity to be set on elements not yet attached to the document. Closes #9904. 2007-10-22 13:14:56 +00:00
Tobie Langel f870fba94f prototype: Avoid the try..catch block in Ajax.Response#_getResponseJSON unless required. 2007-10-22 12:04:06 +00:00
Tobie Langel 44c9d8937a prototype: Make the Ajax.Response#headerJSON property correctly decode unicode characters. Closes #9285 2007-10-22 11:20:21 +00:00
Tobie Langel 827c8c6b48 prototype: Prevent a Firefox bug from throwing errors on page load/unload. Closes #5393, #9421. 2007-10-22 01:04:17 +00:00
Tobie Langel 37bab18999 prototype: previous changeset Closes #9917, #9463, #8260. 2007-10-18 15:52:26 +00:00
Tobie Langel 29c0de6937 prototype: Make submitting forms work in Opera < 9.1. 2007-10-18 15:46:30 +00:00
Sam Stephenson b83ae95d90 prototype: Fix template evaluation with empty replacements. Closes #9692. 2007-10-17 14:14:27 +00:00
Sam Stephenson 8327ffd8ae prototype: Hash#toTemplateReplacements is an alias for Hash#toObject so you can once again pass hashes to Template#evaluate and String#interpolate. 2007-10-17 13:39:46 +00:00
Sam Stephenson d114e76e97 prototype: Fix Event#is(Left|Middle|Right)Click in IE. Closes #7520. 2007-10-17 13:26:49 +00:00
Andrew Dupont aada1abb56 * Ensure Event.* generic methods work in IE, even when the event is not extended. [Viktor Kojouharov, Andrew Dupont] 2007-10-16 05:11:42 +00:00
Sam Stephenson bfd5353cbf prototype: Don't translate "keypress" events into "keydown" events. 2007-10-16 03:36:58 +00:00
Andrew Dupont 8d3d6cdb04 * Changed Element#makeClipping to remember the original overflow value, even if it's a non-inline style. [Andrew Dupont] 2007-10-16 03:29:19 +00:00
Sam Stephenson 3dd7bd5b4b prototype: Cross-browser Event#isLeftClick with the addition of is(Middle|Right)Click. Closes #7520. 2007-10-16 03:19:38 +00:00
Andrew Dupont 6cd34be0c4 * Change Selector to use the non-XPath approach for Safari 3 because of bugs in its version of document.evaluate. [Andrew Dupont] 2007-10-16 03:08:31 +00:00
Andrew Dupont 0dd4ba70f6 * Changed the Selector regex that tests whether the selector can be expressed in XPath; added :checked, since XPath can't detect all scenarios in which an <input> is checked. Fixes #9776. [StelardActek, kangax, Andrew Dupont] 2007-10-16 02:28:28 +00:00
Andrew Dupont 88f8d3b9af * Changed Selector pattern match so that descendant combinators after pseudoclass tokens are properly handled. Fixes #9696. [wiktor, kangax, Andrew Dupont] 2007-10-16 02:21:24 +00:00
Tobie Langel 865ac01937 prototype: Make sure $w always returns an array. 2007-10-15 17:19:16 +00:00
Tobie Langel 941359b2f7 Performance enhancements to . Closes #9464 2007-10-14 11:12:08 +00:00
Tobie Langel 7dda50a7c9 Make Function#argumentNames work with named functions. Closes #9826 2007-10-14 10:54:06 +00:00
Tobie Langel 96af1b7579 Add Object.isHash. 2007-10-14 08:08:42 +00:00
Tobie Langel d195111a9d Performance improvements to String#times. 2007-10-13 19:05:19 +00:00
Tobie Langel db371ddb5a Make Ajax.Response#getHeaderJSON and Ajax.Response#getResponseJSON pseudo private instance methods. 2007-10-13 11:37:26 +00:00
Tobie Langel e7bb042aa6 Make ObjectRange use the new Class.create syntax. 2007-10-13 11:24:23 +00:00
Tobie Langel d25b863c9a Complete rewrite of the Hash class. 2007-10-13 10:55:52 +00:00
Sam Stephenson 4607e29fa2 prototype: Element#wrap now returns the wrapper instead of the element being wrapped. 2007-10-11 06:11:26 +00:00
Sam Stephenson 115d3e456d prototype: Namespace all custom event names to avoid conflicts with native DOM events. 2007-10-11 06:00:45 +00:00
Sam Stephenson c35598ca2b prototype: Clean up the new class API. 2007-10-11 05:02:07 +00:00
Sam Stephenson 8ca43a5c88 prototype: Fix contentloaded event initialization in IE. Closes #9457, #9488, #9707. 2007-10-08 22:37:15 +00:00
Sam Stephenson c904fe7664 prototype: Deprecate document.getElementsByClassName and Element#getElementsByClassName since native versions return a NodeList and we can only return an Array. Please use $$ or Element#select instead. 2007-10-08 21:29:27 +00:00
Sam Stephenson cf88669931 prototype: Fix missing "var" in selector.js. Closes #9761. 2007-10-08 21:15:46 +00:00
Sam Stephenson 4b1fb7e03a prototype: Date#toJSON now returns times in UTC for better compatibility with json.js. Closes #9332. 2007-10-08 21:14:24 +00:00
Sam Stephenson 8cf1f895f7 prototype: Ensure document._getElementsByXPath extends the elements it returns; fixes $$ not returning extended elements in Opera 9.2. Closes #8843. 2007-10-08 19:01:31 +00:00