summaryrefslogtreecommitdiff
path: root/resources/mediawiki.page/mediawiki.page.ready.js
diff options
context:
space:
mode:
Diffstat (limited to 'resources/mediawiki.page/mediawiki.page.ready.js')
-rw-r--r--resources/mediawiki.page/mediawiki.page.ready.js52
1 files changed, 34 insertions, 18 deletions
diff --git a/resources/mediawiki.page/mediawiki.page.ready.js b/resources/mediawiki.page/mediawiki.page.ready.js
index 370c3a19..ee416d67 100644
--- a/resources/mediawiki.page/mediawiki.page.ready.js
+++ b/resources/mediawiki.page/mediawiki.page.ready.js
@@ -1,24 +1,40 @@
-jQuery( document ).ready( function( $ ) {
+( function ( mw , $ ) {
+ var supportsPlaceholder = 'placeholder' in document.createElement( 'input' );
- /* Emulate placeholder if not supported by browser */
- if ( !( 'placeholder' in document.createElement( 'input' ) ) ) {
- $( 'input[placeholder]' ).placeholder();
- }
+ mw.hook( 'wikipage.content' ).add( function ( $content ) {
+ var $sortableTables;
- /* Enable makeCollapsible */
- $( '.mw-collapsible' ).makeCollapsible();
+ // Run jquery.placeholder polyfill if placeholder is not supported
+ if ( !supportsPlaceholder ) {
+ $content.find( 'input[placeholder]' ).placeholder();
+ }
- /* Lazy load jquery.tablesorter */
- if ( $( 'table.sortable' ).length ) {
- mw.loader.using( 'jquery.tablesorter', function() {
- $( 'table.sortable' ).tablesorter();
- });
- }
+ // Run jquery.makeCollapsible
+ $content.find( '.mw-collapsible' ).makeCollapsible();
- /* Enable CheckboxShiftClick */
- $( 'input[type=checkbox]:not(.noshiftselect)' ).checkboxShiftClick();
+ // Lazy load jquery.tablesorter
+ $sortableTables = $content.find( 'table.sortable' );
+ if ( $sortableTables.length ) {
+ mw.loader.using( 'jquery.tablesorter', function () {
+ $sortableTables.tablesorter();
+ } );
+ }
- /* Add accesskey hints to the tooltips */
- mw.util.updateTooltipAccessKeys();
+ // Run jquery.checkboxShiftClick
+ $content.find( 'input[type="checkbox"]:not(.noshiftselect)' ).checkboxShiftClick();
+ } );
-} );
+ // Things outside the wikipage content
+ $( function () {
+
+ if ( !supportsPlaceholder ) {
+ // Exclude content to avoid hitting it twice for the (first) wikipage content
+ $( 'input[placeholder]' ).not( '#mw-content-text input' ).placeholder();
+ }
+
+ // Add accesskey hints to the tooltips
+ mw.util.updateTooltipAccessKeys();
+
+ } );
+
+}( mediaWiki, jQuery ) );