Javascript 如何从iframe元素的子元素访问iframe元素
我需要从事件处理程序函数中的子元素访问iframe元素对象 举个例子Javascript 如何从iframe元素的子元素访问iframe元素,javascript,iframe,Javascript,Iframe,我需要从事件处理程序函数中的子元素访问iframe元素对象 举个例子 function callback(ev) { //get the event target element var targetElement = ev.target; //get the document object of the target element var doc = targetElement.ownerDocument; //Question: how to get to the
function callback(ev) {
//get the event target element
var targetElement = ev.target;
//get the document object of the target element
var doc = targetElement.ownerDocument;
//Question: how to get to the doc's iframe object
// I tried these properties below, both returns null
var ifrmEle = doc.parentElement;
var ifrmEle = doc.parentNode;
}
假设targetElement是上例中的body元素,
所以我的问题是如何访问拥有body元素的iframe元素
感谢您的专业知识。没有方便的属性可以提供这些信息 最接近的方法是循环父文档中的所有帧,直到找到一个包含相同文档的帧 父文档
Iframe父对象
Iframe父对象
子文档
内联框架
内联框架
此文档位于名为?的框架中
父文件
.querySelectorAll('iframe,frame')
.forEach(帧=>{
if(frame.contentWindow.document===文档){
document.querySelector('span').textContent=frame.name;
}
});
<!DOCTYPE html>
<meta charset="utf-8">
<title>Iframe Parent</title>
<h1>Iframe Parent</h1>
<iframe src="iframe.html" name="one"></iframe>
<iframe src="iframe.html" name="two"></iframe>
<iframe src="iframe.html" name="three"></iframe>
<iframe src="iframe.html" name="four"></iframe>
<!DOCTYPE html>
<meta charset="utf-8">
<title>Iframe</title>
<h1>Iframe</h1>
<p>This document is in a frame named <span>?</span>.</p>
<script>
parent.document
.querySelectorAll('iframe, frame')
.forEach(frame => {
if(frame.contentWindow.document === document) {
document.querySelector('span').textContent = frame.name;
}
});
</script>