【问题标题】:how to change src of iframe dynamically in the flutter web?如何在flutter web中动态更改iframe的src?
【发布时间】: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,
);
}
}

【问题讨论】:

    标签: html flutter iframe webview flutter-web


    【解决方案1】:

    我正在使用 _iframeElement.src = widget.url(不是 .srcdoc)并使用重绘功能进行更新。

    static redraw(String newLink, String newTitle) {
    IFrameElement element = document.getElementById('contentz');
    element.src = newLink;
    

    }

    【讨论】:

      猜你喜欢
      • 2012-02-28
      • 1970-01-01
      • 2020-06-12
      • 2014-05-02
      • 1970-01-01
      • 2013-07-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多