2 var supportsPlaceholder
= 'placeholder' in document
.createElement( 'input' );
4 // Break out of framesets
5 if ( mw
.config
.get( 'wgBreakFrames' ) ) {
6 // Note: In IE < 9 strict comparison to window is non-standard (the standard didn't exist yet)
7 // it works only comparing to window.self or window.window (http://stackoverflow.com/q/4850978/319266)
8 if ( window
.top
!== window
.self
) {
9 // Un-trap us from framesets
10 window
.top
.location
.href
= location
.href
;
14 mw
.hook( 'wikipage.content' ).add( function ( $content
) {
17 // Run jquery.placeholder polyfill if placeholder is not supported
18 if ( !supportsPlaceholder
) {
19 $content
.find( 'input[placeholder]' ).placeholder();
22 // Run jquery.makeCollapsible
23 $content
.find( '.mw-collapsible' ).makeCollapsible();
25 // Lazy load jquery.tablesorter
26 $sortableTables
= $content
.find( 'table.sortable' );
27 if ( $sortableTables
.length
) {
28 mw
.loader
.using( 'jquery.tablesorter', function () {
29 $sortableTables
.tablesorter();
33 // Run jquery.checkboxShiftClick
34 $content
.find( 'input[type="checkbox"]:not(.noshiftselect)' ).checkboxShiftClick();
37 // Things outside the wikipage content
41 if ( !supportsPlaceholder
) {
42 // Exclude content to avoid hitting it twice for the (first) wikipage content
43 $( 'input[placeholder]' ).not( '#mw-content-text input' ).placeholder();
46 // Add accesskey hints to the tooltips
47 if ( document
.querySelectorAll
) {
48 // If we're running on a browser where we can do this efficiently,
49 // just find all elements that have accesskeys. We can't use jQuery's
50 // polyfill for the selector since looping over all elements on page
51 // load might be too slow.
52 $nodes
= $( document
.querySelectorAll( '[accesskey]' ) );
54 // Otherwise go through some elements likely to have accesskeys rather
55 // than looping over all of them. Unfortunately this will not fully
56 // work for custom skins with different HTML structures. Input, label
57 // and button should be rare enough that no optimizations are needed.
58 $nodes
= $( '#column-one a, #mw-head a, #mw-panel a, #p-logo a, input, label, button' );
60 $nodes
.updateTooltipAccessKeys();
62 // Infuse OOUI widgets, if any are present
63 $nodes
= $( '[data-ooui]' );
64 if ( $nodes
.length
) {
65 // FIXME: We should only load the widgets that are being infused
66 mw
.loader
.using( [ 'mediawiki.widgets', 'mediawiki.widgets.UserInputWidget' ] ).done( function () {
67 $nodes
.each( function () {
75 }( mediaWiki
, jQuery
) );