为了账号安全,请及时绑定邮箱和手机立即绑定

如何获取iframe innerHTML来表示页面上实际可见的内容?

如何获取iframe innerHTML来表示页面上实际可见的内容?

芜湖不芜 2021-04-26 13:41:08
所以这是发生在我身上的疯狂事情。我想在网站中嵌入Google表单。我需要自动填充和隐藏表单字段之一。这是一些html:<!DOCTYPE html><html>  <head> </head>  <body>    <iframe      src="https://docs.google.com/forms/d/e/1FAIpQLSdisob821_bYS5Ya_r460Bn0RHYSB5xqIW6Yz-z4WPwEVjxMQ/viewform?embedded=true"      width="640"      height="734"      frameborder="0"      marginheight="0"      marginwidth="0"      >Loading...</iframe    >  </body></html>漂亮又简单。现在,如果我在浏览器(当前为Chrome)中运行该表单,则显示的很好。我用自己的眼睛看到它。我丝毫没有陶醉。现在,在我的开发人员工具控制台中,执行以下操作:formFrame = document.querySelector("body > iframe");formFrame.innerHTML;  // the value is "Loading..."所以js认为我们仍在显示占位符文本?奇怪的。我真的不在乎直接与innerHTML一起工作。我想要的是这样的:inputContainers = document.querySelectorAll("div.freebirdFormviewerViewNumberedItemContainer");长度应为2。为0如果我在我的开发工具中查看html元素树,那么一切似乎都应该存在。我使用开发工具的“检查元素”功能只是为了确保我使用的选择器正确。然后我再次执行formFrame.innerHTML。我得到了错误Uncaught ReferenceError: formFrame is not defined。天哪然后,我再次执行此操作:inputContainers = document.querySelectorAll("div.freebirdFormviewerViewNumberedItemContainer")它返回两个元素。达到重点我以为我的开发人员工具的“检查元素”功能会引发一个事件,该事件导致dom被正确填充。如何在我的代码内部实现这一目标?我非常担心自己可能会遇到某些安全功能,而无法在我的应用程序中使用Google表单。任何帮助或见识将不胜感激!
查看完整描述

1 回答

?
一只萌萌小番薯

TA贡献1795条经验 获得超7个赞

事实证明这是不可能的。这是一项安全功能


查看完整回答
反对 回复 2021-05-13
  • 1 回答
  • 0 关注
  • 281 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信