我不知道为什么这不起作用。这可能很简单。 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;
}
关于javascript - 检测iframe中图像的点击,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8528018/