JavaScript HTML5 Master/Slave Browser Tabs Helper.
See a brief look on the homepage
Documentation available on http://dueljs.readthedocs.org/
######New in 1.2.7:
- Fixed #13: webpack import
######New in 1.2.6:
- Fixed #11: localstorage issue for private browsing (thanks to Stéphane Bachelier [email protected])
- Library added to npm as dueljs (thanks to Denis Lukov [email protected])
######New in 1.2.5:
- Different variables for each channel (setItem, getItem, removeItem)
######New in 1.2.4:
- New storage methods setItem, getItem, removeItem with JSONify inside
- Direct localStorage changed to window.localStorage
- Fixed emit bug (arguments)
- New configuration duel.noWarnings
/** Turn off errors for debug */
duel.noWarnings = false;
/** New storage methods example */
var ch = duel.channel('demo');
ch.setItem('x', 10);
ch.setItem('y', {'a': true});
ch.getItem('x'); // 10
ch.getItem('y'); // Object {'a': true}
######New in 1.2.3:
- UMD compatible (thanks to RasCarlito [email protected])
- Microsoft Edge attested (thanks to toby11)
######New in 1.2.2:
- Fixed some additional bugs (extra-release)
######New in 1.2.1:
- Fixed #5: localStorage - stack overflow problem (thanks to Alex Core [email protected])
######New in 1.2.0:
- New method: channel.off - stop watching event
- New method: channel.once - executing callback only one time and stop watching event
- New method: channel.emit - the alias of channel.broadcast
- Function window.isMaster() now returns true even if no one channel has initialized #3
- Dev test coverage (Mocha + PhantomJS)
######New in 1.1.0:
- "storage" event improves performance in modern browsers. To turn it off and use old method - do:
duel.useStorageEvent = false; // auto false in IE
- Now only slaves can execute triggers
- Some unimportant bug fixes
######List of attested browsers:
- Opera 29.0.1795.35 (with storage event)
- Chrome 41.0.2272.118 (with storage event)
- Firefox 34.0 (with storage event)
- Internet Explorer 11 (without storage event)
- Safari 534.57.2 (with storage event)
- Android 4.3 LT29i default browser (with storage event)
- Microsoft Edge 25.10586.0.0 (with storage event)
Internet Explorer does incorrect. So it using force useStorageEvent = false
by default.
######How it works with Internet Explorer without storage event? Don't worry. It using setInterval javascript checking.
######Testing suite
- NodeJS version 6.7.0
- PhantomJS version 2.1.1
- Chai version 3.5.0
- Mocha version 3.1.0
- Mocha-PhantomJS custom fork of 4.1.0
In Mac OS Sierra you want to use phantomjs from brew (brew install phantomjs) and check to link it:
$ which phantomjs
/usr/local/bin/phantomjs
And also you can create this link by yourself:
ln -s /usr/local/Cellar/phantomjs/2.1.1/bin/phantomjs /usr/local/bin/phantomjs
The reason I temporary changed original repo of mocha-phantomjs to git+https://github.com/studentIvan/mocha-phantomjs.git#master is cause mocha-phantomjs doesn't support the second phantomjs right now.