https://www.mediawiki.org/wiki/Special:Code/MediaWiki/112481
Revision: 112481
Author: jdlrobson
Date: 2012-02-27 13:14:24 +0000 (Mon, 27 Feb 2012)
Log Message:
-----------
abstract document.querySelectorAll
some browsers do not support querySelectorAll or getElementsByClassName
therefore am abstracting this so javascript doesn't break on these browsers
libraries such as zepto or jquery should be substitute in where necessary to
make
these browsers work
Modified Paths:
--------------
trunk/extensions/MobileFrontend/javascripts/application.js
trunk/extensions/MobileFrontend/javascripts/beta_application.js
trunk/extensions/MobileFrontend/javascripts/beta_opensearch.js
Modified: trunk/extensions/MobileFrontend/javascripts/application.js
===================================================================
--- trunk/extensions/MobileFrontend/javascripts/application.js 2012-02-27
12:22:26 UTC (rev 112480)
+++ trunk/extensions/MobileFrontend/javascripts/application.js 2012-02-27
13:14:24 UTC (rev 112481)
@@ -1,10 +1,11 @@
/*global document, window */
/*jslint sloppy: true, white:true, maxerr: 50, indent: 4, plusplus: true*/
MobileFrontend = (function() {
+ var utilities;
function init() {
var i, results, languageSelection, a, heading,
- sectionHeadings = document.getElementsByClassName(
'section_heading' );
+ sectionHeadings = utilities( '.section_heading' );
utilities( document.body ).addClass( 'jsEnabled' );
function openSectionHandler() {
var sectionNumber = this.id ? this.id.split( '_' )[1] :
-1;
@@ -61,7 +62,6 @@
// Try to scroll and hide URL bar
window.scrollTo( 0, 1 );
}
- init();
function wm_reveal_for_hash( hash ) {
var targetel = document.getElementById( hash.substr(1) ),
@@ -94,7 +94,12 @@
}
}
- function utilities( el ) {
+ utilities = function( el ) {
+ if( typeof(el) === 'string' ) {
+ if( document.querySelectorAll ) {
+ return document.querySelectorAll( el );
+ }
+ }
function addClass( name ) {
var className = el.className,
classNames = className.split( ' ' );
@@ -140,6 +145,7 @@
xmlHttp.send();
};
+ init();
return {
wm_reveal_for_hash: wm_reveal_for_hash,
wm_toggle_section: wm_toggle_section,
Modified: trunk/extensions/MobileFrontend/javascripts/beta_application.js
===================================================================
--- trunk/extensions/MobileFrontend/javascripts/beta_application.js
2012-02-27 12:22:26 UTC (rev 112480)
+++ trunk/extensions/MobileFrontend/javascripts/beta_application.js
2012-02-27 13:14:24 UTC (rev 112481)
@@ -5,10 +5,11 @@
TODO: addEventListener not supported by IE < 9
*/
MobileFrontend = (function() {
+ var utilities;
function init() {
var i, search, clearSearch, results, languageSelection, a,
heading,
- sectionHeadings = document.getElementsByClassName(
'section_heading' );
+ sectionHeadings = utilities( '.section_heading' );
utilities( document.body ).addClass( 'jsEnabled' );
function openSectionHandler() {
var sectionNumber = this.id ? this.id.split( '_' )[1] :
-1;
@@ -65,7 +66,6 @@
// Try to scroll and hide URL bar
window.scrollTo( 0, 1 );
}
- init();
function wm_reveal_for_hash( hash ) {
var targetel = document.getElementById( hash.substr(1) ),
@@ -99,6 +99,12 @@
}
function utilities( el ) {
+ if( typeof(el) === 'string' ) {
+ if( document.querySelectorAll ) {
+ return document.querySelectorAll( el );
+ }
+ }
+
function addClass( name ) {
var className = el.className,
classNames = className.split( ' ' );
@@ -144,6 +150,7 @@
xmlHttp.send();
};
+ init();
return {
wm_reveal_for_hash: wm_reveal_for_hash,
wm_toggle_section: wm_toggle_section,
Modified: trunk/extensions/MobileFrontend/javascripts/beta_opensearch.js
===================================================================
--- trunk/extensions/MobileFrontend/javascripts/beta_opensearch.js
2012-02-27 12:22:26 UTC (rev 112480)
+++ trunk/extensions/MobileFrontend/javascripts/beta_opensearch.js
2012-02-27 13:14:24 UTC (rev 112481)
@@ -26,7 +26,7 @@
}
function resetViewPort() {
if ( navigator.userAgent.match( /iPhone/i ) ||
navigator.userAgent.match( /iPad/i ) ) {
- var viewportmeta = document.querySelector(
'meta[name="viewport"]' );
+ var viewportmeta = utilities( 'meta[name="viewport"]' );
if ( viewportmeta ) {
viewportmeta.content = 'width=device-width,
minimum-scale=1.0, maximum-scale=1.0, initial-scale=1.0';
u( document.body ).bind( 'gesturestart',
function () {
_______________________________________________
MediaWiki-CVS mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs