作为我的应用程序的一部分,我需要将iframe显示为页面。我需要在页面上提供后退和前进按钮,以便iframe可以在其历史记录中返回/转发。
当我尝试:
$scope.backiframe = function() {
var iframe = document.getElementById('iframe');
iframe.contentWindow.history.go(-1);
}
使用我的按钮和iframe:
<a class="button button-positive" ng-click="backiframe()">back</a>
<iframe id="iframe" ng-src="{{trustSrc(url)}}" scrolling="yes"></iframe>
我收到以下错误:
Error: Permission denied to access property "history"
$scope.backiframe@http://localhost:8100/js/controllers.js:1217:16
anonymous/fn@http://localhost:8100/lib/ionic/js/ionic.bundle...
有没有人知道如何让iframe返回/转发到phonegap离子混合应用中?
答案 0 :(得分:0)
如果您尝试在iframe中访问的网址超出当前网页域名,那么您将无法执行此操作。现代浏览器实现同源策略,该策略在运行跨站点脚本时决定JavaScripts的权限。
当父母和孩子来自同一个域时,他们可以互相访问;孩子可以访问和操作父母的属性和方法,反之亦然。但是,当他们不这样做时,尝试这样的访问将触发脚本错误,表明权限被拒绝。
如果由于浏览器安全限制而在其他地方托管iframe,则无法访问该iframe的历史记录。同源政策阻止你回去。
以下是其他几个相关问题: -