当前位置: 首页 > 面试题库 >

在AngularJS中将iframe动态插入页面

吕骞尧
2023-03-14
问题内容

我正在尝试使用Angular 1.2将iframe动态插入页面中。这是代码:

HTML:

<div id="player_wrapper" ng-cloak>
    <div ng-bind-html="player"></div>
</div>

js:

$http({method: 'GET', url: url}).
    success(function(data, status) {
        $scope.player = data.html;
    }.......

因此data.html是一个具有有效HTML开头的字符串

<iframe ...>

该字符串还包含一些div。所以它看起来像:

<iframe src='...' ...></iframe><div>some stuf</div>

我在app.js’ngSanitize’中使用。它显示的是div(在iframe之后),而不是iframe本身。

如果我使用jQuery,基本上

$(#'player_wrapper').html(data.html)

效果很好…但是试图使其正确的angularJS。

关于为什么只显示iframe之后的div的任何想法?

非常感谢大家


问题答案:

ngBindHtml$sce.getTrustedHtml在显示之前将通过您的HTML
。我怀疑这将是删除您的iframe的原因。

根据文档,您可以使用$
sce.trustAsHtml
避免此检查,只要您完全信任来自此来源的任何HTML-来自不受信任来源的iframe可能会对您页面访问者造成很多麻烦。

$http({method: 'GET', url: url}).
    success(function(data, status) {
        $scope.player = $sce.trustAsHtml(data.html);
    }.......

小心!:)



 类似资料:
  • 问题内容: 当有人点击图片时,我们使用jQuery厚盒来动态显示iframe。在此iframe中,我们使用Galleria一个JavaScript库来显示多张图片。 问题似乎是,在iframe中似乎触发得太早了,并且iframe内容还没有加载,因此Galleria代码未正确应用于DOM元素。似乎使用iframe父就绪状态来确定iframe是否已就绪。 如果我们将准备好的文档调用的函数提取到单独的函

  • 问题内容: 试图使用AngularJS将iframe插入页面,即使是最简单的形式,我也无法使其工作。 Java脚本 我的HTML: 问题答案: 您需要使用$ sce 服务来告诉angular在视图上呈现html内容 Angular Doc说 $ sce是一项为AngularJS 提供 严格的上下文转义 服务的服务。SCE通过以下方式帮助编写代码:(a)默认情况下是安全的,并且(b)使得对安全漏洞(

  • 问题内容: 我正在尝试将一些内容插入“空白” iFrame中,但是没有插入任何内容。 HTML: JS: 我正在调用该函数,所以我不明白为什么它没有插入。 问题答案: 您真的不需要jQuery: 如果绝对必须使用jQuery,则应使用 请不要忘记,如果您使用的是jQuery,则需要按如下所示插入DOMReady函数:

  • 问题内容: 我有一个小问题。从服务请求数据后,我得到了一个iframe代码作为响应。 我想将其作为道具传递给我的模式组件并显示它,但是当我在render函数中简单地将其显示为字符串时。 在react中将其显示为html的基本方法是什么? 问题答案: 您可以像这样使用property 同样,您可以从 字符串中 复制所有属性( 根据问题,您从服务器获取iframe作为字符串 ),其中包含标签,并将其传

  • 问题内容: 我有一个页面,其中包含2个控制器:一个管理一个所谓的“应用程序”列表,另一个将新的Angular模板放入其Div元素的innerHTML中。 我尝试使用标准的{{expression}}绑定,但是它们不适用于html,我也尝试了ng-bind-html- unsafe指令(将innerhtml绑定到App请求的返回值),但是控制器不支持在此新代码中执行。 问题似乎在于,通过使用绑定,A

  • 问题内容: 我正在寻找一种在加载应用程序后从DOM获取初始数据的方法。服务器已将数据插入到视图中。是的方法是个好方法吗? 我也想知道在使用时如何从视图中获取数据,我可以使用标签在特定范围内注入数据吗? 我看到这个和这个问题,但它并没有帮助了很多。 问题答案: 1)受此问题启发的第一个解决方案是的方法: 然后,我们可以在希望的时间和地点使用它,如下所示: 但是这种方式在我开始使用时对我不起作用,可能