gpt4 book ai didi

angularjs - 如何刷新 iframe 网址?

转载 作者:行者123 更新时间:2023-12-01 22:59:54 33 4
gpt4 key购买 nike

我正在使用 ionic 创建一个应用程序,其中我使用 iframe 显示 URL。
这是 HTML 代码:

  <iframe id="myFrame" width="100%" height={{iframeHeight}}>

这是 Angular js:
 $scope.iframeHeight = window.innerHeight;
document.getElementById("myFrame").src = value['url'];

一切正常,但是当我从后端在网站上进行更改并刷新应用程序时,新的更改不会出现在应用程序中。

最佳答案

您在代码中所做的事情不是一种有效的方式。您正在使用不会运行摘要循环的 native 方法操作 DOM,您需要通过执行 $scope.$apply() 手动运行它.这将解决您的问题,但通常您不应该从 Controller 进行 DOM 操作,这被认为是不好的做法。相反,我建议您使用有 Angular 的双向绑定(bind)功能。在作用域范围变量中分配 url 并使用 ng-src="{{url}}" 将其添加到 iframe 标记上这样src URL 将通过 Angular 更新,并且随着 url 的更新 iframe将从 src 加载内容网址在里面。

HTML

<iframe id="myFrame" width="100%" ng-src="{{url}}" height={{iframeHeight}}>

代码
$scope.url = "http://example.com"

当您更改 Controller 中的范围变量时, src的 iframe 也将得到更改和 iframe将重新加载内容。

更新

要解决缓存问题,您需要将当前日期时间附加到您的 url,每次都会创建一个新 URL,并且不会被浏览器缓存。像 $scope.url = "http://example.com?dummyVar="+ (new Date()).getTime()通过使用它永远不会损害您当前的行为,只需要附加 dummyVar具有始终唯一的当前时间值。
$scope.url = "http://example.com?dummyVar="+ (new Date()).getTime()

关于angularjs - 如何刷新 iframe 网址?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30830406/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com