我正在运行一个离子谷歌地图应用程序。 我遇到的问题是右下角的谷歌条款和条件。我想显示条款和条件,但是当我运行应用程序并单击条款和条件时,会打开另一个窗口,从而使我的应用程序消失。
如何点击条款和条件,但将其置于框架内?
http://codepen.io/leetcat/pen/GZrLRN
index.html:
<html ng-app="ionic.example">
<head>
<meta charset="utf-8">
<title>Map</title>
<meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no, width=device-width">
<link href="//code.ionicframework.com/nightly/css/ionic.css" rel="stylesheet">
<script src="//code.ionicframework.com/nightly/js/ionic.bundle.js"></script>
<!-- google maps javascript -->
<script src="//maps.googleapis.com/maps/api/js?key=AIzaSyB16sGmIekuGIvYOfNoW9T44377IU2d2Es&sensor=true"></script>
</head>
<body ng-controller="MapCtrl">
<ion-header-bar class="bar-dark" >
<h1 class="title">Map</h1>
</ion-header-bar>
<ion-content>
<div id="map" data-tap-disabled="true"></div>
</ion-content>
</body>
</html>
app.js
angular.module('ionic.example', ['ionic'])
.controller('MapCtrl', function($scope, $ionicLoading, $compile) {
function initialize() {
var myLatlng = new google.maps.LatLng(43.07493,-89.381388);
var mapOptions = {
center: myLatlng,
zoom: 16,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementById("map"),
mapOptions);
$scope.map = map;
}
google.maps.event.addDomListener(window, 'load', initialize);
});
点击条款和条件后,系统会打开新页面。我希望它在一个框架中打开,所以我可以点击回来。在iOS应用程序中,无法单击返回。
答案 0 :(得分:1)
将此功能添加到app.js文件中:
function changeTermsOfUseClick() {
var a = document.getElementsByClassName('gmnoprint').item(1).lastChild.lastChild;
a.setAttribute('href',"#/html/redirect/here");
a.removeAttribute('target');
};
并将此行添加到初始化函数中:
$scope.initialize = function() {
google.maps.event.addListenerOnce($scope.map, 'tilesloaded', changeTermsOfUseClick);
};
加载地图后,会调用changeTermsOfUseClick(),并且我们想要更改其href的元素存在,因此您可以将其指向您想要的应用中的任何位置,更改此#/html/redirect/here
。
确保在没有显示的情况下也不删除它,这是非法的。