(function() { window.monaca = window.monaca || {}; var IS_DEV = false; var d = IS_DEV ? alert : function(line) { console.debug(line); }; var isAndroid = !!(navigator.userAgent.match(/Android/i)); var isIOS = !!(navigator.userAgent.match(/iPhone|iPad|iPod/i)); var defaultParams = { width : 640, onAdjustment : function(scale) { } }; var merge = function(base, right) { var result = {}; for (var key in base) { result[key] = base[key]; if (key in right) { result[key] = right[key]; } } return result; }; var zoom = function(ratio) { if (document.body) { if ("OTransform" in document.body.style) { document.body.style.OTransform = "scale(" + ratio + ")"; document.body.style.OTransformOrigin = "top left"; document.body.style.width = Math.round(window.innerWidth / ratio) + "px"; } else if ("MozTransform" in document.body.style) { document.body.style.MozTransform = "scale(" + ratio + ")"; document.body.style.MozTransformOrigin = "top left"; document.body.style.width = Math.round(window.innerWidth / ratio) + "px"; } else { document.body.style.zoom = ratio; } } }; if (isIOS) { monaca.viewport = function(params) { d("iOS is detected"); params = merge(defaultParams, params); document.write('<meta name="viewport" content="width=' + params.width + ',user-scalable=no" />'); monaca.viewport.adjust = function() {}; }; } else if (isAndroid) { monaca.viewport = function(params) { d("Android is detected"); params = merge(defaultParams, params); document.write('<meta name="viewport" content="width=device-width,target-densitydpi=device-dpi" />'); monaca.viewport.adjust = function() { var scale = window.innerWidth / params.width; monaca.viewport.scale = scale; zoom(scale); params.onAdjustment(scale); }; var orientationChanged = (function() { var wasPortrait = window.innerWidth < window.innerHeight; return function() { var isPortrait = window.innerWidth < window.innerHeight; var result = isPortrait != wasPortrait; wasPortrait = isPortrait; return result; }; })(); var aspectRatioChanged = (function() { var oldAspect = window.innerWidth / window.innerHeight; return function() { var aspect = window.innerWidth / window.innerHeight; var changed = Math.abs(aspect - oldAspect) > 0.0001; oldAspect = aspect; d("aspect ratio changed"); return changed; }; }); if (params.width !== 'device-width') { window.addEventListener("resize", function() { var left = orientationChanged(); var right = aspectRatioChanged(); if (left || right) { monaca.viewport.adjust(); } }, false); document.addEventListener('DOMContentLoaded', function() { monaca.viewport.adjust(); }); } }; } else { monaca.viewport = function(params) { params = merge(defaultParams, params); d("PC browser is detected"); monaca.viewport.adjust = function() { var width = window.innerWidth || document.body.clientWidth || document.documentElement.clientWidth; var scale = width / params.width; zoom(width / params.width); params.onAdjustment(scale); }; if (params.width !== 'device-width') { window.addEventListener("resize", function() { monaca.viewport.adjust(); }, false); document.addEventListener("DOMContentLoaded", function() { monaca.viewport.adjust(); }); } }; } monaca.viewport.isAndroid = isAndroid; monaca.viewport.isIOS = isIOS; monaca.viewport.adjust = function() { }; })();
--------------------------- scall support tab -------------
this feature on javascript support tablets
source share