我不知道为什么这不起作用。这可能很简单。 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/

10-14 19:21
查看更多