Ich verwende iframe, um den Inhalt mithilfe von anglejs mit ionischem Framework anzuzeigen. Hier muss ich Fensterhöhe als iframe Höhe angeben, also habe ich verwendet
$scope.iframeHeight = window.innerHeight;
Aber ich bekomme nur einen 1/4 Bildschirm.
Hier was ich bisher ausprobiert habe.
index.html
<!DOCTYPE html>
<html ng-app="ionicApp">
<head>
<!-- ionic/angularjs CSS -->
<link href="css/ionic.css" rel="stylesheet">
<link href="css/ionic-custom.css" rel="stylesheet">
<!-- ionic/angularjs js bundle -->
<script type="text/javascript" src="js/ionic.bundle.js"></script>
<script>
angular.module('ionicApp', ['ionic'])
.controller('MainCtrl', function($scope) {
$scope.iframeHeight = window.innerHeight;
});
</script>
</head>
<body ng-controller="MainCtrl">
<iframe src="http://stackoverflow.com" ng-style="{height:iFrameHeight}" id="iframeid" width="100%" ></iframe>
</body>
</html>
Fehlt mir etwas?
Hauptproblem: Sie müssen der window.innerHeight
-Nummer "px" -Einheiten hinzufügen. Und der zweite, Variablenname, ist iframeHeight
nicht iFrameHeight
. Ein fester Ausdruck sieht folgendermaßen aus:
ng-style="{height: iframeHeight + 'px'}"
Obwohl das Fensterobjekt global verfügbar ist, gibt es Testbarkeitsprobleme als Referenz in den Winkeln docs https://docs.angularjs.org/api/ng/service/ $ Aber für eine gute Praxis können Sie einen $ window-Dienst einfügen und darauf verweisen, und natürlich die "px" -Ausgabe unten.
angular.module('ionicApp', ['ionic'])
.controller('MainCtrl', function($scope, $window) {
$scope.iframeHeight = $window.innerHeight;
});
Später wie gesagt;
ng-style="{height: iframeHeight + 'px'}"
Da AngularJS einen kleinen Teil von jQuery enthält, können Sie Folgendes verwenden:
// Returns height of browser viewport
$scope.iframeHeight = $(window).height();
oder
// Returns height of HTML document
$scope.iframeHeight = $(document).height();
Fensterhöhe mit Winkel berechnen
$scope.screenHeight = '';
$scope.calculateoriginalWidth = function() {
var width = $window.innerWidth;
$rootScope.originalWidth = width;
}
$scope.calculateScreenHeight = function() {
var height = $window.innerHeight;
var width = $window.innerWidth;
var subheight = 0;
var headerheight = document.getElementById('headerTitle1');
var headerheight2 = document.getElementById('headerTitle2');
if (headerheight) {
subheight += headerheight.offsetHeight;
}
if (headerheight2) {
subheight += headerheight2.offsetHeight;
}
$scope.screenHeight = height - subheight - 20;
$rootScope.screenHeight = $scope.screenHeight;
$scope.screenWidth = width;
$rootScope.screenWidth = $scope.screenWidth;
}
var reg = $scope.$on('screenResize', function($evt, args) {
$scope.calculateScreenHeight();
$scope.$apply();
})
window.onresize = function(event) {
$scope.$apply(function() {
$scope.calculateScreenHeight();
})
};
$scope.calculateScreenHeight();
$scope.calculateoriginalWidth();
Sie müssen die erforderlichen Abhängigkeiten in angle für die Verwendung dieses Codes hinzufügen. Ich hoffe, das hilft Ihnen, die Höhe des Fensters zu berechnen.