首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Web应用程序在iframe中无法读取自己的DOM元素。在iframe外面工作得很好

Web应用程序在iframe中无法读取自己的DOM元素。在iframe外面工作得很好
EN

Stack Overflow用户
提问于 2022-09-25 23:01:20
回答 1查看 123关注 0票数 0

我有一个高度定制的网络应用程序(用Gradio制作),需要进入另一个站点的iframe。

网站托管在数字海洋上。Gradio应用程序是在本地PC上托管的。Gradio应用程序是js/css/html。

当我直接在浏览器中加载Gradio应用程序时,一切正常工作。

如果我将应用程序放在iframe中(否则是骨架HTML/而不是加载的其他脚本),似乎Gradio应用程序就不能再通过自己的js读取自己的DOM元素了。

代码语言:javascript
复制
<iframe src="https://12894.gradio.app" name="frame2" id="frame2" frameborder="0" marginwidth="0" marginheight="0"></iframe>

"TypeError:无法读取null (读取'getElementById')“等属性。

我并不试图使用iframe之外的任何内容来读取或更改iframe中的元素,反之亦然。

我的理解是,当在iframe中加载页面时,它应该能够用自己的脚本读取/修改它自己的元素。我搞错了吗?

EN

回答 1

Stack Overflow用户

发布于 2022-09-26 00:11:58

结果,Gradio使用了一个阴影DOM来混淆事物。刚从他们的密码里删除了。现在跑得很好。

代码语言:javascript
复制
function gradioApp(){
return document.getElementsByTagName('gradio-app')[0].shadowRoot;}

代码语言:javascript
复制
function gradioApp(){
return document;}

以防其他人碰到这个。谢谢大家的快速帮助!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73848348

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档