Javascript 检测iframe内图像的点击
我不明白这为什么不起作用。这可能很简单。iframe与父页面来自同一域 我知道我可以使用jQuery,但我想学习使用纯JavaScript 到目前为止,我的代码是: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
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、何时使用等:)