This is a patch release which switches the build to rollup. Switching shaves 2k off of the gzipped size. In addition to this benefit, this also fixes a couple of small issues:
This is a patch release fixing an issue that was meant to be solved in 1.8.1. page.js now runs in Node.js again, when there isn't a window environment.
This is a patch release, fixing an issue with Node.js usage.
This is a minor release, adding one new (minor) feature and a few bug fixes and documentation improvements.
The new feature of this release is that page.js can now control other pages (windows) besides the main window. This makes it possible to control an iframe's routing. You can use it by passing the window option to start:
page('/', function(){
// Whoa, I'm inside an iframe!
});
page.start({ window: myiFrame.contentWindow });
Note that page is still a singleton, which means you can only have 1 page, so you can't control both an iframe and the main window at the same time.
This change was made to improve our testing, but in the future we'll make it possible to have multiple page objects so you really will be able to control multiple iframes and the main window all at the same time.
Hashbang support has never been very good in page.js. But we're slowly improving it! In 1.8.0 we've fixed the problem where the app's full URL would show up in the hashbang upon start. http://example.com/my/page#!/my/page. Gross! No longer happens thanks to #447.
Those are the big things, but here's a list of all of the pull requests merged into 1.8.0:
- #445 - Prevent hash from being part of the ctx.pathname
- #447 - Prevent going to the root when setting up the initial hashchange route
- #446 - Add a note about usage with a CDN
- #443 - Change test infrastructure to run inside of iframes
- #303 - page.exit callback example missing context param
- #267 - Added clarification for decoded plus signs in urls
This is a patch release making an improvement to how page.js works on pages that use the file protocol, such as Electron and nw.js apps.
- #441 - Set the page's base to be the current location when used under the file protocol with hashbang routing.
Our first release in almost 2 years! This is a long overdue patch release that contains various bug fixes that have taken place over the course of the last couple of years. As releases will become much more often in the future (containing only a few fixes in most cases), I will be listing the closed issues in releases, but because there are 2 years worth it is not practical to do so in this release.
While you're here, if you haven't checked out page.js in a long time now is a great time. I've recently taken over maintenance and have a plan in place to take this great small library into the future. For now I am concentrating on stabilizing 1.x by fixing as many of the backlog of issues that have built up as I can. Once that is complete we'll start thinking about 2.0.
If you've submitted a PR here in the past and seen it be ignored, please come back! Your contributions are invaluable, and I promise that as long as I'm maintaining this project I'll do my best to always at least comment on pull requests and try to get them resolved.
That's all for now! Please report any issues you find in 1.7.2.
- #363 - Reinstate shadow DOM fixes which were reverted
- #284 - Use shadow dom when available (@mwalid)
- #329 - Add type annotations for full closure-compiler advanced optimization support (@chadkillingsworth)
- #328 - Include ctx in page.after example, fixes #290 (@aaronshaf)
- fix wildcard route support (update path-to-regexp to v1.2.1)
- fix including page.js on server side
- fix including page.js if the document is already loaded
- fix bug with click-event in Firefox
- fix touch support #236
- fix nw.js support #238
- fix popstate issue in Safari #213
- added
page.js
to npm files - back button works correct with hash links in Firefox #218
- added
page.back
feature #157 - added
decodeURLComponents
option #187 - now
ctx.params
is object like in express #203 - skip route processing if another one is called #172
- docs improved
- tests improved
- added page.exit(path, callback[, callback...])
- added page.redirect(url)
- fix: ignore links with
download
attribute - fix: remove URL encoding before parsing paths
- fixed: hashbang navigation
- added hashbang example
- added tests
- add hashbang support. Closes #112
- add page.redirect() method
- add plugins list to readme
- add Context#handled option
- Fix an issue where redirects in dispatch can be overwritten by ctx.save()
- add support HTML5-History-API polyfill
- make sameOrigin public
- update path-to-regexp
- allow for missing href in anchors.
- update examples
- fix removal of fragment
- fix links with target attribute
- fix ctrl/cmd/shift clicks
- add tmp .show() dispatch argument
- add keywords to component.json
- remove + support from path regexps
- add explicit "#" check
- add
window
toaddEventListener
calls
- fix: onclick only when e.which == 1
- add
page(fn)
support. Closes #27 - add component.json
- fix tests
- fix examples
- add transitions example
- add exposing of
Context
andRoute
constructors - fix infinite loop issue unhandled paths containing query-strings
- add
ctx.pathname
- add
ctx.querystring
- add support for passing a query-string through the dispatcher [ovaillancourt]
- add
.defaultPrevented
support, ignoring page.js handling [ovaillancourt]
- Added some basic client-side tests
- Fixed initial dispatch in Firefox
- Changed: no-op on subsequent
page()
calls. Closes #16
- Fixed origin portno bug preventing :80 and :443 from working properly
- Fixed: prevent cyclic refreshes. Closes #17
- Added enterprisejs example
- Added: join base for
.canonicalPath
. Closes #12 - Fixed
location.origin
usage [fisch42] - Fixed
pushState()
when unhandled
- Added
+
support to pathtoRegexp() - Added
page.base(path)
support - Added dispatch option to
page()
. Closes #10 - Added
Context#originalPath
- Fixed unhandled links when .base is present. Closes #11
- Fixed:
Context#path
to "/"
- Added
make clean
- Added some mocha tests
- Fixed: ignore fragments
- Fixed: do not pushState on initial load