javascript - 如何访问flutter web IFrameElement?
问题描述
下面的代码之前工作正常,但在更新 Flutter SDK 后它不再工作了。
我创建了一个这样的 iframe:
ui.platformViewRegistry.registerViewFactory(
viewId.toString(),
(int id) => IFrameElement()
..src =
"my_url"
..id = viewId
..style.border = 'none');
js.context.callMethod('initIframe', [viewId, "SomeData"]);
在我的 index.html 中:
function initIframe(viewId, rawData) {
var initiated = false;
document.querySelectorAll("flt-platform-view").forEach(function (platformView) {
var view = platformView.shadowRoot.children[1];
if (view.id === viewId) {
var iframe = view.contentWindow;
if (iframe != null) {
initiated = true;
console.log("IFrame Found...!!")
}
}
}
);
if (!initiated) setTimeout(function () {
initIframe(viewId, rawData)
}, 250);
}
以前一切都很好,但现在我发现这个查询没有孩子:
document.querySelectorAll("flt-platform-view")
我不知道flutter web是否有一些变化,但现在我无法让它工作。
解决方案
推荐阅读
- javascript - 单击可滚动div内的视频按钮,将其向右移动
- java - Java 中的类声明与 Kotlin 中的类声明
- javascript - 悬停播放视频
- json - 验证 Json - Laravel
- django - 块文件未在浏览器中调用/加载
- hyperledger-fabric - 无法使用 loacl 游乐场版本部署网络?
- python - 通过元素树填充child下的值
- swift - 在不同的 ViewController 中使用相同的 TableViewCell
- docker - 在 docker compose 文件中设置 Nsqlookupd 的 IP 地址和端口
- javascript - Laravel 通过 ajax 发送数据