【问题标题】:Phonegap Ionic - Iframe history.back(); is not workingPhonegap Ionic - Iframe history.back();不管用
【发布时间】:2016-08-21 16:58:05
【问题描述】:

作为我的应用程序的一部分,我需要将 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 ionic 混合应用程序中工作?

【问题讨论】:

标签: javascript angularjs cordova iframe ionic-framework


【解决方案1】:

如果您尝试在 iframe 中访问的 URL 位于当前页面域之外,那么您将无法访问。现代浏览器实现了同源策略,该策略在运行跨站点脚本时决定 JavaScript 的权限。

当父母和孩子来自同一个域时,他们可以互相访问;子进程可以访问和操作父进程的属性和方法,反之亦然。但是,如果他们不这样做,那么尝试此类访问将触发指示权限被拒绝的脚本错误。

如果 iframe 托管在其他地方,由于浏览器安全限制,您无法访问它的历史记录。同源政策阻止您返回。

这里有几个其他相关的问题:-

  1. Error: Can't access property href
  2. Permission denied to access property in IFRAME

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-06
    • 2018-03-16
    • 1970-01-01
    相关资源
    最近更新 更多