jQuery-显示已单击的iFrame的URL

jQuery-显示已单击的iFrame的URL,iframe,Iframe,我有多个URL的MySQL数据库。 每个URL显示在一个iframe中,因此3个URL=3个iframe。我这样展示它们 ... $resu = mysql_fetch_array ($consultation); echo "<iframe src='".$resu['URL']."' onload='load(this)' id='iframe'></iframe>"; ... 。。。 $resu=mysql\u fetch\u数组($consultation);

我有多个URL的MySQL数据库。 每个URL显示在一个iframe中,因此3个URL=3个iframe。我这样展示它们

...
$resu = mysql_fetch_array ($consultation);
echo "<iframe src='".$resu['URL']."' onload='load(this)' id='iframe'></iframe>";
...
。。。
$resu=mysql\u fetch\u数组($consultation);
回声“;
...
通过这个脚本,我能够知道所单击的iframe的URL(不完全正确,而且它在JSFIDLE中不起作用,但在我的PC中是的)(http://jsfiddle.net/7UxHv/))


$(窗口)。加载(函数(){
$('iframe#iframe').load(函数(){
警报($('iframe').attr('src');
});
});
但实际上,它显示的是第一个数据库行,而不是单击的那一行


是否仍要显示用该脚本或其他表单单击的脚本?谢谢

试试这个。。。将“src”更改为“data src”。。。然后试试下面的

echo "<iframe data-src='".$resu['URL']."' onload='load(this)' id='iframe'></iframe>";

$('#iframe').click(function() {
    alert($('#iframe').data('src'));
});
echo”“;
$('#iframe')。单击(函数(){
警报($('iframe')。数据('src');
});
还可以尝试使用onclick(),而不是使用onload

可能有用…

编辑:

注意:您正在生成具有相同id的多个元素。。id应该是唯一的

这可能就是为什么您只能在第一行工作


我认为下面的代码应该可以工作:

Html:


我尝试了数百种方法,我认为onclick不起作用。现在我将尝试数据src,我不知道它与src x有什么区别)iframe不使用属性data src显示,它只使用src显示。iframe不能有准确的url,这是一个示例。我需要它,就像在OP.iframe src='“$resu['URL']”中一样,因为我用php显示来自数据库的结果,这很可能是您所说的,所有iframe都有相同的id,但是iframe必须有一个id才能将其与jquery关联,那么我该怎么做呢?您不需要id-在调用事件处理程序(无论是单击事件还是加载事件)时使用“this”变量指向触发事件的元素,因此您可以使用$(this)而不是$(“#元素id”)aaaaa好的,但我使用id是出于一个原因,因为我有另一个脚本,现在我需要将它与此脚本组合,如果您这样做,您就是上帝:)为希望第二个脚本运行的iFrame提供一个类(例如class=“reload counter”)然后通过$('.reload counter').load(…)而不是使用id设置另一个脚本。通常,如果要触发多个元素的代码,请使用类而不是id。
echo "<iframe data-src='".$resu['URL']."' onload='load(this)' id='iframe'></iframe>";

$('#iframe').click(function() {
    alert($('#iframe').data('src'));
});
<iframe src='.$resu['URL'].' onload='loadIframe(this)' scrolling='no'></iframe>​
window.loadIframe = function(frame) {
    alert("Loaded "+$(frame).attr('src'));
}