Loading [MathJax]/jax/output/CommonHTML/config.js
社区首页 >问答首页 >如何在flutter web中动态改变iframe的src?

如何在flutter web中动态改变iframe的src?
EN

Stack Overflow用户
提问于 2021-03-02 08:42:50
回答 2查看 536关注 0票数 1

我正在尝试设置新的URL(即HTML字符串),每次src更改时我都会解析它。但是使用这段代码,我只能显示第一个src,并且它不会改变,并且每次都显示相同的输出src。

类IframeView扩展了StatefulWidget { String url;

代码语言:javascript
代码运行次数:0
复制
frameView(this.url);

@override
_IframeViewState createState() => _IframeViewState(url);
}

class _IframeViewState extends State<IframeView> {
String url;
_IframeViewState(this.url);
final html.IFrameElement _iframeElement = html.IFrameElement();

 Widget _iframeWidget;


 @override
 void initState() {
 _iframeElement.height = '500';
_iframeElement.width = '500';
_iframeElement.srcdoc = widget.url;
_iframeElement.style.border = 'none';

// print("src printing");
// print(_iframeElement.srcdoc);
// print("widget url");
// print(widget.url);



ui.platformViewRegistry.registerViewFactory('iframeElement', (int viewId) {
  return _iframeElement;
});

_iframeWidget = HtmlElementView(
  key: UniqueKey(),
  viewType: 'iframeElement',
);

super.initState();
}

@override
void didUpdateWidget(IframeView oldWidget) {
super.didUpdateWidget(oldWidget);
print("from did update widget");
print(_iframeElement.srcdoc);
_iframeElement.srcdoc = widget.url;
}

@override
Widget build(BuildContext context) {
return Container(
  margin: EdgeInsets.only(top: 50),
  child: _iframeWidget,
);
}
}
EN

回答 2

Stack Overflow用户

发布于 2021-04-12 14:37:34

我使用_iframeElement.src = widget.url (而不是.srcdoc),并使用重画函数进行更新。

代码语言:javascript
代码运行次数:0
复制
static redraw(String newLink, String newTitle) {
IFrameElement element = document.getElementById('contentz');
element.src = newLink;

}

票数 1
EN

Stack Overflow用户

发布于 2022-03-04 11:33:51

这对我很有效:

代码语言:javascript
代码运行次数:0
复制
Widget buildVideoView(Key key) {
    String? videoFileUrl;
    String iFrameId = <some id defined in this stateful class>;

    if (<default url flag>) {
      videoFileUrl = <defaultVideoUrl>;
    } else {
            videoFileUrl = <new url>;
      IFrameElement element = document.getElementById(iFrameId) as IFrameElement;
      element.src = videoFileUrl;
    }

    html.IFrameElement _iframeElement;
    Widget _iframeWidget;
    _iframeElement = html.IFrameElement();
    _iframeElement.id = iFrameId; << this is important
    _iframeElement.height = '100%';
    _iframeElement.width = '100%';
    _iframeElement.allow = 'accelerometer; gyroscope;';
    _iframeElement.allowFullscreen = true;
    _iframeElement.src = videoFileUrl;
    _iframeElement.style.border = 'none';

    // ignore: undefined_prefixed_name
    ui.platformViewRegistry.registerViewFactory(
      'iframeElement',
      (int viewId) => _iframeElement,
    );
    _iframeWidget = HtmlElementView(
      key: key, << also important to prevent flicker/jitter/restart on rebuild
      viewType: 'iframeElement',
    );
    return _iframeWidget;
  }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66435988

复制
相关文章
获取iframe src里的参数
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/159827.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/14
5.9K0
03-iframe属性src的使用
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/126363.html原文链接:https://javaforall.cn
全栈程序员站长
2022/07/23
1.9K0
如何在 WordPress 中嵌入 iFrame
Iframe 是一种将网页嵌入到另一个页面的内容中的方法。这是通过使用 HTML 元素、外部网站的 URL 以及窗口在您的网站上的外观参数来实现的。
海拥
2022/12/11
2.4K0
如何在 WordPress 中嵌入 iFrame
响应式web布局中iframe的自适应
困境           在响应式布局中,我们应该小心对待iframe元素,iframe元素的width和height属性设置了其宽度和高度,但是当包含块的宽度或高度小于iframe的宽度或高度时,会
欲休
2018/03/15
2.5K0
响应式web布局中iframe的自适应
Flutter Web: 如何在页面中使用web原生组件及交互
flutter开发经常会与原生打交道,flutter web也一样,尤其在web开发时,因为flutter web还不成熟,第三方库缺少,很多功能需要依靠web原生来实现,比如音视频,录音等等。用视频举例,需要用html和js来实现一个视频播放器,然后在flutter页面中使用这个播放器,这如何来实现?
BennuCTech
2022/05/31
2.2K0
Flutter Web: 如何在页面中使用web原生组件及交互
[Flutter]flutter_web 用flutter愉快的开发web
看到Google出flutter_web的technical preview版本了。赶忙clone下来试了一下。
吴老师
2019/05/15
3.3K0
[Flutter]flutter_web 用flutter愉快的开发web
如何在 Flutter 中设置背景图像【Flutter专题16】
在 Flutter 应用程序中设置背景图像的常用方法是使用DecorationImage. 以下示例包括如何设置Fit 模式、透明度以及在显示键盘时防止图像变化。
徐建国
2021/12/13
12.1K0
如何在 Flutter 中设置背景图像【Flutter专题16】
让动态的 iframe 内容高度自适应
注意到这里的 this.contentWindow 其实就类似与下方的 name值对应的iframe2,两种引用方式是等价的
书童小二
2018/09/03
6.8K0
让动态的 iframe 内容高度自适应
Flutter 中 ListView 动态数据生成列表
1. 循环数据,生成列表效果。 import 'package:flutter/material.dart'; void main(){ runApp(MyApp()); } // 抽离成一个单独的组件 class MyApp extends StatelessWidget{ @override Widget build(BuildContext context) { return MaterialApp( home: Scaffold(
越陌度阡
2020/12/22
3.2K0
Flutter 中 ListView 动态数据生成列表
Flutter中ListView 动态数据生成列表
1. 循环数据,生成列表效果。 import 'package:flutter/material.dart'; void main(){ runApp(MyApp()); } // 抽离成一个单独的组件 class MyApp extends StatelessWidget{ @override Widget build(BuildContext context) { return MaterialApp( home: Scaffold(
越陌度阡
2022/05/06
1.7K0
Flutter中ListView 动态数据生成列表
flutter - 如何在 dart/flutter 中收听流值
如果流不是广播流,则您只能收听一次。 请参阅此 Medium post 以了解有关 Streams 的更多信息。 收听 stream 时,您需要在 _assetsAudioPlayer.currentPosition 函数中添加您的代码。
徐建国
2021/08/30
1.1K0
js获取iframe中的内容(iframe内嵌页面)
在父页面中定义函数,再到子页面中调用。 父页面parent.html function getFrameId(f){ var frames = document.getElementsByTagName(“iframe”); //获取父页面所有iframe for(i=0;i
全栈程序员站长
2022/08/01
24.7K0
js获取iframe中的内容(iframe内嵌页面)
如何在 Flutter 中创建自定义图标【Flutter专题22】
Flutter 提供了很多开箱即用的图标,使用这些图标非常容易。但是,您也可以使用自己的图标。您需要的是一个 TTF(True Type Font)文件,其中包含您要使用的图标。生成 TTF 文件的最简单方法是使用 Fluttericon.com。
徐建国
2022/03/30
3.4K0
如何在 Flutter 中禁用默认的 Widget 飞溅效果
默认情况下,许多 Flutter Material Design 小部件在被选中时会显示飞溅效果。
徐建国
2021/08/09
2.4K0
flutter - 如何在 ListView 构建器中显示特定索引中的项目 原文 标签 flutter dart
我想开始显示索引5中的列表项 ListView.builder( itemCount: items.length, itemBuilder: (context, index) { return ListTile( title: Text('${items[index]}'), ); }, ); 最佳答案 看一下这个 ListView.builder( itemCount: items.length, itemBuilder: (context, index) { if(index < 5
徐建国
2021/08/30
6.2K0
利用Flutter中的ListView进行动态卡片布局
真香!本来觉得用以前的java就能做的为啥还用flutter,但是最近接触flutter之后感觉这才是写移动应用的神器啊! 尤其是用java写的listView,各种适配器传参简直了
徐建国
2021/07/31
2.1K0
Edittext监听动态改变
方法一:          // 输入框限制输入字数         editText.addTextChangedListener(new TextWatcher() {             private CharSequence temp;             private boolean isEdit = true;             private int selectionStart ;             private int selectionEnd ;
xiangzhihong
2018/01/26
1.4K0
pyppeteer对于iframe中的滑块
import asyncio import time import numpy, random import pyppeteer async def main(): ip = "xxxxxx" #代理ip port = "xxxx" #代理端口 browser = await pyppeteer.launch({'headless': False, 'args': [
小小咸鱼YwY
2020/12/21
2.8K0
点击加载更多

相似问题

动态改变Iframe src

10

用regex改变iframe src

38

改变iframe的src不工作

15

动态更改iframe SRC

10

如何在flutter中动态改变文本?

140
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档