如何在flutter web中动态更改iframe的src?
Posted
技术标签:
【中文标题】如何在flutter web中动态更改iframe的src?【英文标题】:how to change src of iframe dynamically in the flutter web? 【发布时间】:2021-05-31 19:05:47 【问题描述】:我正在尝试设置每次 src 更改时我都会解析的新 URL(即 html 字符串)。但是使用此代码,我只能显示第一个 src,并且每次都不会更改并显示相同的输出 src。 类 IframeView 扩展 StatefulWidget 字符串网址;
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,
);
【问题讨论】:
【参考方案1】:我正在使用 _iframeElement.src = widget.url(不是 .srcdoc)并使用重绘功能进行更新。
static redraw(String newLink, String newTitle)
IFrameElement element = document.getElementById('contentz');
element.src = newLink;
【讨论】:
以上是关于如何在flutter web中动态更改iframe的src?的主要内容,如果未能解决你的问题,请参考以下文章
如何根据 iframe 中的动态内容更改 iframe 的高度?