Commit graph

26 commits

Author SHA1 Message Date
scottjehl
3df24fab6d fixed a regression in safari where images wouldn't load properly because base was being set after html was appended. 2011-01-25 00:29:19 -05:00
scottjehl
5d5336d8b0 fixed firefox regression. check if base is set/supported before setting. 2011-01-24 23:56:53 -05:00
scottjehl
0ba9acfc33 added support for URL updating via a preset data-url on the page div when it is sent from the server.
If data-url is set on a page div when it returns from the server, it's value will be used to replace the url in the hash, and as the base url for future requests if it adds additional segments (such as a trailing slash). This will enable developers to work around the limitation of directory links requiring a trailing slash, and will also allow developers to specify a new url after a redirect occurs (such as after a login). Fixes #867
2011-01-24 19:35:45 -05:00
scottjehl
2e6a396278 added ajaxEnabled option. ajaxLinksEnabled and ajaxFormsEnabled are deprecated and will be removed by 1.0. Fixes #851 2011-01-23 19:03:35 -05:00
scottjehl
be8eb3d0c6 deprecated data-back attribute on links in favor of data-direction="reverse". Updated docs and relevant demos. 2011-01-23 18:12:46 -05:00
scottjehl
9b57c46349 Refactored urlStack and updated dialog and page plugins to match. jQuery Mobile's internal history now attempts to follow the history menu when urls change from hashchange, even for changes that go multiple steps forward or back. The internal history stack is now pruned based on whether a user goes back and then changes direction, whereas before a back-button click would result in a pop off the history. Instead we now maintain an active index number in the history stack, which allows us to maintain references to transitions that are saved on pages reached through clicking the forward button as well. This fixes #636.
In the process, some other small changes should be noted:
urlStack is now urlHistory, a hash of methods and properties used for history stack management (stack, activeIndex, getActive, getPrev, getNext, addNew, clearForward, and listening Enabled). All these are documented inline and exposed on $.mobile.urlHistory (I'm not sure these will be publicly documented, but just exposed internally for plugins for now).

$.changePage has two argument changes: the "back" argument is now called "reverse"; this results in no change from an end-user standpoint, but reflects the fact that it only reverses the direction of a transition without affecting the internal history stack, and second, a new argument at the end defines whether changePage was called from a hashChange which makes that url open to history menu guessing.
2011-01-23 17:33:36 -05:00
scottjehl
9e4b0a484c Overhauled path object and exposed it and the base object via $.mobile. Form and Link handlers now use the path methods internally. Unit tests adjusted, but more are needed to fully cover the path and base propeties and methods. Fixes #566. 2011-01-22 17:42:07 -05:00
scottjehl
6fb50fd289 use inArray instead of indexOf. Fixes #828 2011-01-22 14:04:04 -05:00
John Bender
e5d2bf1b66 added target check to $.mobile.isExternalLink 2011-01-20 23:05:37 -08:00
John Bender
8a5060de13 fixed issue with dialog click handler breaking transitions on external links Fixes #642 2011-01-19 23:48:30 -08:00
Kin Blas
02c9264f0d Fix for issue 613 - Jquery Mobile ignores original 'base' tag defined in HTML
- Fixed baseTagTest() in jquery.mobile.support.js, so that it uses any pre-existing base tag for testing. This fixes the bug on Webkit (Safari) where the relative paths for links were being resolved/expressed with the document path instead of the original base path.

- Modified the base code in jquery.mobile.navigation.js so that it uses the initial path of a pre-existing base tag, instead of always using the document path. This means that a document with a URL such as:

    http://foo.com/a/b/c#docs/pages/index.html

That uses a base tag like:

    <base href="http://foo.com/bar/">

Will resolve properly:

    http://foo.com/bar/docs/pages/index.html

so the mobile page gets loaded properly.

- Reduced the path.get() function down to a couple of regexp replace() calls.
2011-01-18 09:18:22 -08:00
Kin Blas
5617d0c8d3 Merge branch 'delay_duplicateCachedPage' of https://github.com/medovob/jquery-mobile into pull662
Had to fix merge conflicts in:
	js/jquery.mobile.navigation.js
2011-01-11 14:12:07 -08:00
John Bender
96d941ebe9 added the ability to disable ajax forms with data-ajax=false, attribute up for debate, Fixes #519 2011-01-08 23:47:07 -08:00
John Bender
b8babd1003 removed console log and added test for default transition 2010-12-16 19:12:58 -08:00
John Bender
7ffec259c5 added tests for explicit transition on back 2010-12-16 18:21:46 -08:00
John Bender
67aed1320b prefer explicit transition even when the url is popped of the stack Fixes #627 2010-12-16 18:20:17 -08:00
John Bender
95ef08b269 perspective class only added on flip page transition or any transition added to the perspectiveTransitions local var in the transitionPages function Fixes #568 2010-12-13 02:21:40 -08:00
Richard Stutfield
0a87b59a04 Navigation: delay removal of duplicateCachedPage 2010-12-10 12:27:14 +00:00
Kin Blas
4882c068b0 Modified loadComplete() so that it always fires off the "show" event. The idea here is that calling preventDefault() on a "hide" event shouldn't prevent the "show" event from being dispatched. Calling preventDefault() on the "show" event still prevents the "to" page from becoming the active page.
Removed redundant target delcaration in the <a> live click callback.
2010-12-08 12:40:21 -08:00
scottjehl
80d56e655b Changed page navigation scripting to use data-url attributes instead of IDs for storing page URLs. This fixes a number of issues, most importantly #477, which exposed a conflict between jQuery's selector engine that would result in un-enhanced pages whenever linking between two pages in the same directory.
The shift away from interal ID attribute usage also allows users to bind page events (pagecreate, pagebeforecreate) to a page div by its ID, which was a frequent cause of confusion when it didn't work as expected in former versions of the framework.

Seemingly unrelated: these commits allow you to specify data-role="dialog" in multipage and single page templates. In multipage templates, the role must be on the page (a link with data-rel alone will not work in multi-page). This addresses issue number 464, but may need further testing for obscure scenarios.

Fixes #477 (Pages are not enhanced when linking to a filename without a path)
Fixes #493 (Click the same link twice -> blank page)
Fixes #513 (closing dialog + returning to the same dialog)
Fixes #550 (changePage() not updating hash for internal pages - breaks )
Fixes #464 (Dialogs don't work within multi-pages)
Fixes #633 (Recent change to prevent same-page requests breaks select menu close button)
Fixes #599 (Page ids & page specific events)
Fixes #634 (After a bad page request, base url is not reset to current path)

booya.
2010-12-07 12:05:10 -05:00
scottjehl
2931fffb91 blur the active/focused element on changepage sooner. Thx @goulvench 2010-12-04 14:46:41 -05:00
scottjehl
74ebc360ca make sure hashchange event never causes additional hash changes to occur when responding with a page change 2010-12-04 13:13:55 -05:00
Jesse Streb
b725ff8f6a https://github.com/jquery/jquery-mobile/issues#issue/493 If changePage is called with to parameter that matches the current page we simply return out of the function 2010-12-04 13:13:55 -05:00
scottjehl
ce5ea07780 don't set hash if back is true. Fixes #582 2010-12-01 12:41:27 -05:00
scottjehl
54568271d9 pageshow and pagehide now fire after the location hash is updated. Fixes #583 2010-12-01 09:52:07 -05:00
scottjehl
d56380fc22 refactor of jquery.mobile.core.js. Moved all of the page navigation model related scripting into jquery.mobile.navigation.js. This includes event handling for click, submit, and hashchange, all of the base tag management, path management, active link class handling, etc. All existing core tests are passing, and all demos work as expected. More tests are needed in core, and this refactor should make those tests easier to write. 2010-11-25 06:13:51 -05:00