1
0
mirror of https://github.com/DataTables/DataTables.git synced 2025-03-15 16:29:16 +01:00

Size: Refactor _fnBrowserDetect slightly to reduce size a small amount

This commit is contained in:
Allan Jardine 2013-10-11 17:31:33 +01:00
parent a9035942d0
commit 686b9c9b72
2 changed files with 42 additions and 16 deletions

View File

@ -1 +1 @@
730e2b88377acb44e9db177e107b9d42ac8bf63f
d6acda3cf13e3dd5ba7069efed96dba77e60205f

View File

@ -160,18 +160,19 @@
function _fnLanguageCompat( oLanguage )
{
var oDefaults = DataTable.defaults.oLanguage;
var zeroRecords = oLanguage.sZeroRecords;
/* Backwards compatibility - if there is no sEmptyTable given, then use the same as
* sZeroRecords - assuming that is given.
*/
if ( !oLanguage.sEmptyTable && oLanguage.sZeroRecords &&
if ( !oLanguage.sEmptyTable && zeroRecords &&
oDefaults.sEmptyTable === "No data available in table" )
{
_fnMap( oLanguage, oLanguage, 'sZeroRecords', 'sEmptyTable' );
}
/* Likewise with loading records */
if ( !oLanguage.sLoadingRecords && oLanguage.sZeroRecords &&
if ( !oLanguage.sLoadingRecords && zeroRecords &&
oDefaults.sLoadingRecords === "Loading..." )
{
_fnMap( oLanguage, oLanguage, 'sZeroRecords', 'sLoadingRecords' );
@ -181,29 +182,54 @@
/**
* Browser feature detection for capabilities, quirks
* @param {object} oSettings dataTables settings object
* @param {object} settings dataTables settings object
* @memberof DataTable#oApi
*/
function _fnBrowserDetect( oSettings )
function _fnBrowserDetect( settings )
{
// Scrolling feature / quirks detection
var n = $(
'<div style="position:absolute; top:0; left:0; height:1px; width:1px; overflow:hidden">'+
'<div style="position:absolute; top:1px; left:1px; width:100px; overflow:scroll;">'+
'<div id="DT_BrowserTest" style="width:100%; height:10px;"></div>'+
'</div>'+
'</div>')[0];
var browser = settings.oBrowser;
// Scrolling feature / quirks detection
var n = $('<div/>')
.css( {
position: 'absolute',
top: 0,
left: 0,
height: 1,
width: 1,
overflow: 'hidden'
} )
.append(
$('<div/>')
.css( {
position: 'absolute',
top: 1,
left: 1,
width: 100,
overflow: 'scroll'
} )
.append(
$('<div class="test"/>')
.css( {
width: '100%',
height: 10
} )
)
)
.appendTo( 'body' );
var test = n.find('.test');
document.body.appendChild( n );
// IE6/7 will oversize a width 100% element inside a scrolling element, to
// include the width of the scrollbar, while other browsers ensure the inner
// element is contained without forcing scrolling
oSettings.oBrowser.bScrollOversize = $('#DT_BrowserTest', n)[0].offsetWidth === 100 ? true : false;
browser.bScrollOversize = test[0].offsetWidth === 100;
// In rtl text layout, some browsers (most, but not all) will place the
// scrollbar on the left, rather than the right.
oSettings.oBrowser.bScrollbarLeft = $('#DT_BrowserTest', n).offset().left !== 1 ? true : false;
document.body.removeChild( n );
browser.bScrollbarLeft = test.offset().left !== 1;
n.remove();
}
/**