javascript - 为什么我无法访问设置了 src 或 srcdoc 属性的 iframe 文档?
问题描述
<html>
<body>
<!-- <iframe id="iff" srcdoc="<div>ok</div>"></iframe> -->
<iframe id="iff" src="data:text/html;charset=utf-8,%3Cdiv%3Eok%3C%2Fdiv%3E"></iframe>
<script>
console.log(document.getElementById('iff').contentWindow.document)
</script>
</body>
</html>
- 我设置了
srcdoc
(src
也试过了)<iframe>
,但无法访问iframe
(iframeElement.contentDocument
也试过了)的真实文档。Chrome 输出(也尝试过 Firefox):
我在Get IFrame 的文档中看到,从主文档中的 JavaScript 中我无法获取跨域 iframe 的文档,并且还从中了解到srcdoc="..." 和 src="data:text/html 之间的区别是什么,..." 在 <iframe> 中?并且在跨域行为方面表现不同src
。srcdoc
但我两种都试过了,都没有。
2. 当我将一个子元素附加到 iframe 的文档主体(带有src
属性集)时,DOM 会更新,但它不会显示在屏幕上。
解决方案
尝试类似:
window.frames['iff'].document.myvar;
如果您使用 url 查找 iframe,这会很有用:
var x=getIframeID("cool.php");
x.contentWindow.callafunction();
function getIframeID(iframeurl) {
var iFs = top.document.getElementsByTagName('iframe');
var x, i = iFs.length;
while ( i-- ){
x = iFs[i];
if(iframeurl.indexOf(x.src)>=0) return (x.id);
if (x.src == iframeurl) return (x.id);
}
return("");
}
推荐阅读
- javascript - 在外部 Javascript 文件中使用传递的变量
- reactjs - 类型错误:state.getIn 不是函数
- python - 使用 plotly.graph_objects.Scatter 绘图时如何使用列作为颜色维度?
- uber-api - H3 DGGS:一般问题
- ios - viewDidAppear() 中的图像动画问题,有什么建议吗?
- r - 使用 R 从 javascripted 下载按钮中抓取数据
- firebase - 如何将类型映射列表保存到 Firestore,然后读取/写入创建的映射?
- javascript - 如何摆脱对象的引用?
- kubernetes - Kubernetes NFS 存储使用 PV 和 PVC
- android-studio - 在 Android Studio 模拟器上佩戴 OS 导航