mirror of
https://github.com/ionic-team/ionic-framework.git
synced 2026-03-13 10:22:08 +08:00
58 lines
1.3 KiB
JavaScript
58 lines
1.3 KiB
JavaScript
|
|
var viewportTag;
|
|
var viewportProperties = {};
|
|
|
|
|
|
function viewportLoadTag() {
|
|
var x;
|
|
|
|
for(x=0; x<document.head.children.length; x++) {
|
|
if(document.head.children[x].name == 'viewport') {
|
|
viewportTag = document.head.children[x];
|
|
break;
|
|
}
|
|
}
|
|
|
|
if(viewportTag) {
|
|
var props = viewportTag.content.toLowerCase().replace(/\s+/g, '').split(',');
|
|
var keyValue;
|
|
for(x=0; x<props.length; x++) {
|
|
keyValue = props[x].split('=');
|
|
if(keyValue.length == 2) viewportProperties[ keyValue[0] ] = keyValue[1];
|
|
}
|
|
viewportInitWebView();
|
|
}
|
|
}
|
|
|
|
function viewportInitWebView() {
|
|
var hasViewportChange = false;
|
|
|
|
if( ionic.Platform.isWebView() ) {
|
|
if( viewportProperties.height != 'device-height' ) {
|
|
viewportProperties.height = 'device-height';
|
|
hasViewportChange = true;
|
|
}
|
|
} else if( viewportProperties.height ) {
|
|
delete viewportProperties.height;
|
|
hasViewportChange = true;
|
|
}
|
|
if(hasViewportChange) viewportUpdate();
|
|
}
|
|
|
|
function viewportUpdate(updates) {
|
|
if(!viewportTag) return;
|
|
|
|
ionic.Utils.extend(viewportProperties, updates);
|
|
|
|
var key, props = [];
|
|
for(key in viewportProperties) {
|
|
if(viewportProperties[key]) props.push(key + '=' + viewportProperties[key]);
|
|
}
|
|
|
|
viewportTag.content = props.join(',');
|
|
}
|
|
|
|
ionic.DomUtil.ready(function() {
|
|
viewportLoadTag();
|
|
});
|