Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/393.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 检测iframe内图像的点击_Javascript_Iframe_Onclick - Fatal编程技术网

Javascript 检测iframe内图像的点击

Javascript 检测iframe内图像的点击,javascript,iframe,onclick,Javascript,Iframe,Onclick,我不明白这为什么不起作用。这可能很简单。iframe与父页面来自同一域 我知道我可以使用jQuery,但我想学习使用纯JavaScript 到目前为止,我的代码是: document.getElementById('my_iframe').onload = function() { document.getElementById('my_iframe').contentWindow.document.getElementsByTagName('img').onclick = functi

我不明白这为什么不起作用。这可能很简单。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
正在返回图像的集合。不能只在整个集合上设置单击处理程序。你需要一次一个地循环

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");
    };
}
var allimgs=document.getElementById('my_iframe').contentWindow.document.getElementsByTagName('img');
对于(变量i=0;i
文档。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");
    };
}
var allimgs=document.getElementById('my_iframe').contentWindow.document.getElementsByTagName('img');
对于(变量i=0;i
暂时忘掉框架业务,看看下面的代码:

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;
}
var onclickFn=function(){
警报(“单击了iframe中的图像”);
},
images=document.getElementById('my_iframe').contentWindow.document.getElementsByTagName('img');
对于(var i=0;i
暂时忘掉框架业务,看看下面的代码:

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;
}
var onclickFn=function(){
警报(“单击了iframe中的图像”);
},
images=document.getElementById('my_iframe').contentWindow.document.getElementsByTagName('img');
对于(var i=0;i
感谢您的解释(我正在尝试学习纯javascript而不是jquery…),当然,非常欢迎您。(你知道,你可以通过点击向上箭头来表示你认为答案是有用的。我从你的个人资料中注意到你从未投过票,所以我想如果你不知道的话,我会让你知道!)谢谢lonesomeday,will检查向上投票,何时使用等等:)谢谢你的解释(我正在尝试学习纯javascript而不是jquery…)当然,非常欢迎您。(您知道,您可以通过单击向上箭头向上投票来表示您认为答案是有用的。我从您的个人资料中注意到,您从未投过票,因此我想如果您不知道,我会让您知道!)感谢lonesomeday,将查看upvoting、何时使用等:)