【发布时间】:2015-02-17 06:59:07
【问题描述】:
我在我的一个jsp页面中使用iframe,我需要分配一个外部地址作为这个iframe的src。它按预期工作。但是,有时当外部源不可用时,我想显示静态图像。我尝试了很多方法,但都没有成功。
比我尝试使用 AngularJS (我最新的迷恋)的方式来实现这一点,但看起来我错过了一些东西。我的文件中的一部分附在下面:-
<iframe ng-src="{{iframesrcurl}}" frameborder="0" width="100%" height="1100px" scrolling="auto" onload="load($event)" onerror="loadingError">
<h3>No such page</h3>
</iframe>
JS文件有
myAppName.controller("myAppController", function ($scope, $sce) {
$scope.iframesrcurl=$sce.trustAsResourceUrl('http://www.w3schools.com');
console.log('iframesrcurl is '+$scope.iframesrcurl);
});
function load(e) {
alert("Inside load function");
alert(e);
}
function loadingError() {
alert('Inside error function');
}
问题是 onload 并且永远不会调用 onerror 函数。
请指导我。我正在寻找纯 html、javascript 或 Angular 的方法,但 jquery 特定的技巧也将不胜感激。
编辑
This question 类似,但它使用的是 knockout.js,我不允许在我的项目中使用它。请建议 Angular 的做法。
【问题讨论】:
-
您所做的不是“角度”方式。这是角度方式的开始:stackoverflow.com/questions/15882326/…
-
@JaimeTorres 感谢您的链接。但是,当外部资源不可用时,我无法收到任何通知。 onError 部分不起作用。如果您有任何工作演示,请分享。
-
出于安全考虑,没有适用于跨站点 URL 的“onError”。如果页面在您的域中,您可以简单地检查框架的内容并确定它是否有意义。如果你试图加载外部资源,你可能是 SOL。一个 plnkr 用于对你所做的事情进行角化:plnkr.co/edit/jTmWOLMN7LdiCZPIvuof
-
我从未尝试过,但这种 YQL 用法可能会起作用:stackoverflow.com/a/16756395/1497479
标签: javascript jquery html angularjs iframe