检测iframe内图像的点击
Detect clicks of images inside iframe
我不明白为什么这不起作用。可能是一些简单的东西。iframe与父页面来自同一个域。
我知道我可以使用jQuery,但我想学习用纯JavaScript来做。
我的代码:
document.getElementById('my_iframe').onload = function() {
document.getElementById('my_iframe').contentWindow.document.getElementsByTagName('img').onclick = function() {
alert("image in iframe was clicked");
}
}
暂时不考虑框架的问题,看看下面的代码:
document.getElementsByTagName('img').onclick = function() {
那会成功吗?不。您将获得一个对象(准确地说是NodeList
),其中包含文档中的所有img
元素。您正在向该对象添加onclick
属性。不是指向元素本身,而是指向指向它们的对象。该函数永远不会被触发,因为它从未应用于任何元素。
你应该做的和你通常做的完全一样:循环遍历你找到的所有图像,并分别对它们应用函数。
var onclickFn = function() {
alert("image in iframe was clicked");
},
images = document.getElementById('my_iframe').contentWindow.document.getElementsByTagName('img');
for (var i = 0; i < images.length; i++) {
images[i].onclick = onclickFn;
}
document.getElementsByTagName
返回一个集合图像。您不能仅在整个集合上设置单击处理程序。您需要一次一个地遍历它们。
var allimgs = document.getElementById('my_iframe').contentWindow.document.getElementsByTagName('img');
for (var i = 0; i < allimgs.length; i++) {
allimgs[i].onclick = function() {
alert("image in iframe was clicked");
};
}
相关文章:
- 如何像模糊图像一样模糊iframe
- Pinterest 扩展如何存储(临时)网页中的图像,然后在 iframe 中访问它们
- 警报后转到 iframe 中的图像链接
- iFrame.load事件未等待预加载图像完成
- iframe占位符图像
- 如何告诉 iframe 将图像链接调整为给定的宽度和高度
- 如何定位“隐藏”的 iframe?(应用程序:链接到嵌入“隐藏的海报图像”嵌入的 Youtube 视频的起始位置)
- Fancybox - 将图像和 iframe 组合在一个图库中
- 在图像中嵌入 Iframe
- 放大iframe内在IE和谷歌浏览器上不起作用的图像
- PhoneGap在iframe中显示下载的图像
- 关闭图像库后重新加载 iframe
- 如何在 iframe 中捕获图像(url)
- 将 Iframe 的源另存为桌面上的图像
- Jquery ajax,等待图像或iframe完全加载后再启动函数
- 从动态生成的iframe元素中获取图像url
- jQuery惰性加载iframe中的图像
- 代码镜像&html2canvas:将iFrame另存为图像
- Iframe将不显示图像
- 使用jQuery预加载fancybox图像iframe